1

Socket.IO 使用心跳模式来确保客户端仍然连接。如果我能够订阅服务器上的 heartbeat 事件,它将解决我的算法。

例如:socket.on "heartbeat", -> mycode

知道这是否可能吗?

4

1 回答 1

1

心跳非常频繁,你确定这是正确的吗?我使用“连接”事件,这似乎可以满足您的需要:

  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 对此很聪明。

于 2013-08-19T16:54:35.487 回答