javascript - Socket.io 心跳事件

标签 javascript express coffeescript websocket socket.io

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

例如: socket.on“心跳”,-> 我的代码

知道这是否可能吗?

最佳答案

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

  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 在这方面很聪明。

关于javascript - Socket.io 心跳事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318157/

相关文章:

JavaScript:如何根据字段对数组中的相同字段进行添加和排序?

javascript - 使用 Jquery 动态添加类?

node.js - ejs如何发送一个变量来 Sequelize ?

node.js - 如何在 Node.js 中编写同步函数

node.js - 使用 React Hook Form 不可编辑字段

javascript - AngularJS 从 postdata 中删除数据

javascript - 正则表达式中缺少组?

javascript - 如何在 Grails 的 js 文件中应用 GString 插值

javascript - 在 lodash.js 中,它会缓存 `.value()` 方法的结果吗?

javascript - JQuery 函数不返回 JSON 列表 - Play Framework、JPA