【问题标题】:Node.JS Socket server and connection on same server slow downNode.JS Socket服务器和同一服务器上的连接变慢
【发布时间】:2011-07-18 11:27:23
【问题描述】:

我可能在这里做错了,但本质上我有一个服务层可以拦截对某个 url 的发布请求。重要的是它永远不会关闭,所以我将它与主服务器隔离。我认为让服务层接受 http 请求并通过任何连接的流发送生成的 XML 数据包是最简单的。好吧,它在技术上是可行的,但我遇到的问题是服务器和客户端都在同一台机器上,似乎 stream.write 正在填满内核缓冲区并减慢它命中之间的时间量服务层到它实际到达客户端的时间。

在服务器端

  • 在连接时,我将流推送到连接数组中,我还设置了一个时间间隔,以确保我在过去 12 秒内收到了一条消息(心跳)。

  • 在接收时,我会遍历流数组,确保它是可写的,然后将 xml 数据包写入其中。

在客户端

  • 每 8 秒写一次“心跳”,以确保我不会断开连接

  • 在传入消息时,我将 XML 解析为 JSON 对象并在服务器中处理它。

这似乎没有什么离谱的,但我可能遗漏了一些东西。

【问题讨论】:

    标签: javascript tcp streaming node.js


    【解决方案1】:

    我认为让服务层接受 http 请求并通过任何连接的流发送生成的 XML 数据包是最简单的。

    要记住的一件事是节点缓冲通过流发送的内容。正如您所指出的,“stream.write 正在填满内核缓冲区”,这是预期的行为,因为通常不使用流以这种方式进行通信。您可以尝试不同的方法,例如通过 sockets 向您的其他进程发送请求?

    希望这会有所帮助?

    停下来#node.js,随时向我们提问!

    编辑:再想一想,您是否已经在使用套接字?如果是这样,我的回答真的没有帮助,道歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2021-08-12
      • 2013-01-06
      • 2021-11-20
      • 2012-04-07
      相关资源
      最近更新 更多