我有简单的基于 Socket.IO 的聊天,当 User1 在“朋友列表”中单击 User2 时,User1 将与 User2 连接到房间(基于来自服务器的“令牌”)。当双方都打开“聊天窗口”(他们都在房间里)时,一切都没有问题。
但是当他关闭聊天窗口(他没有连接到房间)时,我如何“ping”用户2?
谢谢您的帮助!
编辑:
- User1打开他的“朋友列表”并选择User2(聊天窗口打开 - 像FB)
- 会话用户 1 + 用户 2 的客户端 JS 请求令牌
- Node.JS 端将 User1 连接到具有 name = token 的房间
好的,现在是房间里的 User1。但是User2不是,因为他没有打开窗口(但他是“在线”=连接到服务器io.connect(...))。
- 用户 1 写一些消息并将其发送到房间
- 现在我需要“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"