【问题标题】:Connection loss between Meteor and C nopoll applicationMeteor 和 C nopoll 应用程序之间的连接丢失
【发布时间】:2015-08-15 20:13:14
【问题描述】:

我使用 nopoll (http://www.aspl.es/nopoll/) 让我的 C 应用程序与 Meteor 进行通信。

Meteor 会定期发送一些ping 消息。 当我的应用程序轮询 websocket 时,它会回复 pong 消息:一切都已找到。

接下来,为了避免轮询,我将其替换为使用sigaction(SIGIO, ...) 初始化的回调。

然后,当收到ping 时,我发送pong,但有时,服务器停止发送ping,并且无法交换其他消息。

ping 和关联的pong 消息之间是否存在超时。 是否有任何机制可以向自己宣传连接丢失,因为nopoll_conn_is_ok()nopoll_conn_is ready() 始终是nopoll_true

【问题讨论】:

    标签: c meteor ping ddp


    【解决方案1】:

    很难说 Meteor 停止发送内容的原因。但是,考虑您的情况时,有两点很有趣:

    1. 在使用 noPoll 时,您不必每次收到 PING 时都发送 PONG,因为这是由 noPoll 的引擎自动完成的(参见 nopoll_conn.c:2453 中的 nopoll_conn_get_msg() 实现)。也许这导致 Meteor 失败。

    2. 关于获取连接关闭通知,使用 nopoll_conn_set_on_close(conn,handler,ptr) 获取连接关闭时的通知。在此处查看工作示例:https://dolphin.aspl.es/svn/publico/nopoll/trunk/test/nopoll-regression-client.c

    最好的问候,

    【讨论】:

      猜你喜欢
      • 2018-03-18
      • 2015-01-29
      • 2012-06-28
      • 1970-01-01
      • 2022-12-25
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 2020-12-25
      相关资源
      最近更新 更多