【发布时间】:2013-08-21 12:10:09
【问题描述】:
Socket.IO 使用心跳模式来确保客户端仍然连接。 如果我能够订阅服务器上的 heartbeat 事件,它将解决我的算法。
例如: socket.on “心跳”,-> 我的代码
知道这是否可行吗?
【问题讨论】:
标签: javascript express coffeescript websocket socket.io
Socket.IO 使用心跳模式来确保客户端仍然连接。 如果我能够订阅服务器上的 heartbeat 事件,它将解决我的算法。
例如: socket.on “心跳”,-> 我的代码
知道这是否可行吗?
【问题讨论】:
标签: javascript express coffeescript websocket socket.io
心跳非常频繁,你确定这是正确的吗?我使用“连接”事件,这似乎可以满足您的需求:
connect: (url, options, connectCallback) =>
someFunction = =>
@doSomeRedisStuff() if @connected
@logger.debug "starting connection to url: #{url}"
@socket = @socket.connect(url, options)
@logger.debug "connecting ..."
@socket.on "connect", =>
@logger.info "connected (socket id #{(@socket.socket.sessionid)})"
@connected = true
setTimeout someFunction, 2000
connectCallback() if connectCallback?
@socket.on "disconnect", =>
@connected = false
如果与服务器的连接中断(例如服务器重新启动),连接事件将在连接恢复时启动。 Socket.IO 对此很聪明。
【讨论】:
socket.on 'disconnect', -> 。我只是将连接状态存储在某处并在这两个回调中更新。