Jac*_*ovi 3 sockets node.js socket.io
我的目标是根据两个不同的用户创建一对一的聊天。我唯一想到的方法是使用socket.io房间
但是现在的问题是我如何创建独特的房间?
例如
socket.on('join', function(room) {
socket.join(room);
});
Run Code Online (Sandbox Code Playgroud)
我需要从客户那里散发房间吗,如果是的话,如何使它变得独一无二。想象有成千上万的用户。
聊天应用程序类似于Facebook聊天应用程序。在这里您可以一对一聊天。
我需要redis或mongodb来存储房间吗?谁有大规模使用socket.io的经验,请分享您的意见
谢谢!
一个房间始终是唯一的,socket.join('roomname')如果不存在该房间,则会创建该房间,并且此套接字将加入该房间;如果存在,则该套接字将加入它。
因此,例如,如果您希望客户端A加入客户端B所在的房间,则可以从客户端A发送如下事件:
socket.emit('joinroom', roomname);
Run Code Online (Sandbox Code Playgroud)
在服务器上:
socket.on('joinroom', function(data){
socket.join(data)
})
Run Code Online (Sandbox Code Playgroud)
无论如何,当套接字连接时,它会自动创建并加入自己的房间,这个房间的名称将是该套接字的ID,因此我认为不必为基于两个不同用户的聊天创建新房间。
您需要做的就是将套接字ID与用户的永久属性链接在一起。
编辑:
我在这里给您一个简单的聊天应用示例,您可以在其中打开多个对话:
server.js:https://gist.github.com/pacmanmulet/b30d26b9e932316f54b2
index.html:https://gist.github.com/pacmanmulet/6481791089effb79f25f
您可以在这里进行测试:https : //chat-socket-io-example.herokuapp.com/
我没有使用房间,当您要发送到一组套接字而不是单个套接字时,它具有更大的意义。希望你能更好地理解我的想法
| 归档时间: |
|
| 查看次数: |
5203 次 |
| 最近记录: |