0

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

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

谢谢您的帮助!

编辑:

  1. User1打开他的“朋友列表”并选择User2(聊天窗口打开 - 像FB)
  2. 会话用户 1 + 用户 2 的客户端 JS 请求令牌
  3. Node.JS 端将 User1 连接到具有 name = token 的房间

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

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

简化客户端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"
4

1 回答 1

0

好的,您需要一种识别 user2 的方法,以便您可以向他发出事件。

这个问题有一个类似的答案——它有帮助吗?

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

于 2013-05-17T12:15:20.787 回答