Socket.IO使用心跳模式来确保客户端仍处于连接状态。如果我能够订阅服务器上的hearbeat事件,它将解决我的算法。
例如:socket.on"heartbeat",->分枝杆菌
知道这是否可能吗?
心跳非常频繁,你确定这是正确的吗?我使用"连接"事件,它似乎可以满足您的需要:
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对此很聪明。