Socket.IO聊天 - “ping”指定客户端

时间:2013-05-17 11:44:18

标签: node.js socket.io

我有简单的基于Socket.IO的聊天,当User1在“朋友列表”中点击User2时,User1将与User2连接到房间(基于来自服务器的“令牌”)。当两个人都打开“聊天窗口”(他们都在房间里)时​​,一切都没有问题。

但是当他关闭聊天窗口(他没有连接到房间)时,如何“ping”User2?

感谢您的帮助!

修改

  1. User1打开了他的“好友列表”并选择了User2(打开了聊天窗口 - 如FB)
  2. 会话JS请求令牌User1 + User2
  3. Node.JS端将User1连接到名为= token
  4. 的房间

    Okey,现在是User1在房间里。但是User2不是,因为他没有打开窗口(但他是“在线”=连接到服务器io.connect(...))。

    1. User1写一些消息并将其发送到房间
    2. 现在我需要“ping”User2的客户端JS并用新消息打开聊天窗口(获取令牌,连接到房间)
    3. 简化客户端JS:

      socket = io.connect "...", {port: 1234}
      token = ajaxRequestToServerForToken mineID, hisID
      socket.emit "joinIntoRoom", token
      

      简化的node.js代码:

      //In handler class
      joinIntoRoom: (socket, token) ->
          socket.leave socket.room
          socket.join token
      
          socket.emit "connected"
      

1 个答案:

答案 0 :(得分:0)

好的,您需要一种识别user2的方法,这样您就可以向他发送一个事件。

This question有类似的答案 - 它有帮助吗?

一旦你有了user2的套接字对象,你就可以调用 socket.emit('joinIntoRoom', {token: token, message: message})第一条消息,然后客户端应该解释它。