【问题标题】:How client side Handle node.js with multiple response from the server客户端如何使用来自服务器的多个响应来处理 node.js
【发布时间】:2023-03-27 04:20:01
【问题描述】:

似乎服务器(节点)具有类似线程的行为,因为它处理同步请求,但我们知道客户端的 javascript 不支持多线程。我只是问客户端(javascript)如何处理node.js,尤其是来自服务器的多个响应? 例如,我想同时渲染两个对象。

用 node.js 制作一个快速的分阶段实时游戏应用程序是否合适?

有没有办法或模式来处理这个问题?

【问题讨论】:

  • 我不确定我是否遵循您的要求? Node 是单线程的,就像浏览器一样。你的意思是,如果一个客户端只有一个线程,它怎么能同时发送两个请求?
  • 我猜你是对的,Node毕竟是单线程的。它只是我不习惯在不使用线程的情况下在套接字上编码。生病了,我必须先尝试节点。是的,两个客户端如何同时发送请求?

标签: jquery node.js


【解决方案1】:

将节点视为指挥官,它处理任务的监控而没有任何阻塞。所以如果你这么想的话,node 不需要是多线程的,它执行任务没有任何等待时间,因此不需要创建新线程,因为没有任何阻塞。

您在评论中提到了套接字,想想这一点,Node 有一个网络线程来监视 TCP/UDP 连接的数据,当它收到一个数据包时,它会询问您的节点脚本您希望如何处理这个数据包,您立即告诉网络线程将这个新数据包作为回复发送出去,然后网络线程开始执行此操作,同时调用下一个事件。


看看下面的图片和段落,这应该可以解释

在 node.js 中,您不应该担心后端会发生什么:只需在执行 I/O 时使用回调即可;并且您可以保证您的代码永远不会中断,并且执行 I/O 不会阻塞其他请求,而不必产生每个请求的线程/进程成本(例如 Apache 中的内存开销)。

拥有异步 I/O 很好,因为 I/O 比大多数代码更昂贵,我们应该做一些比仅仅等待 I/O 更好的事情。

事件循环是“处理和处理外部事件并将其转换为回调调用的实体”。所以 I/O 调用是 Node.js 可以从一个请求切换到另一个请求的点。在 I/O 调用中,您的代码保存回调并将控制权返回给 node.js 运行时环境。稍后当数据实际可用时调用回调。

来源:http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/


请务必阅读那篇文章,这是第一篇让我完全了解后端架构的文章。

【讨论】:

  • 感谢@Robert 现在我了解了节点内部的工作原理。实际上,我目前正在使用节点link 制作游戏。它类似于轰炸机人游戏。
  • 只是我觉得同时渲染精灵很乏味。
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 2016-06-05
  • 2013-04-06
  • 1970-01-01
相关资源
最近更新 更多