回复 (24)
D
显然不行
J
不知道有没有别的现成模块可以用, 不然只能从 socket.join('room') 做文章了
I
用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时:
socketMap['a'] = socketA;
socketMap['b'] = socketB;
客户端a发消息给b:
socketMap['b'].emit(...);
C
引用 italkboy用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时: socketMap['a'] = socketA; socketMap[...
这个方法想过。但是当用户数量多的时候不知道这种方式可行不。
C
C
I
引用 italkboy用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时: socketMap['a'] = socketA; socketMap[...
@chinawomen 怎么不可行呢,难道怕超出对象属性个数范围?可以在用户断开的时候:delete socketMap['a'];
C
引用 italkboy用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时: socketMap['a'] = socketA; socketMap[...
@italkboy 如果用这个方法的话你给特定对象推送消息的时候。其实是广播到所有的在线用户只不过是其他用户没有监听而已。还有就是一对多的时候怎么动态区监听
L
引用 italkboy用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时: socketMap['a'] = socketA; socketMap[...
@chinawomen @italkboy 给出的代码是服务器给特定客户端发送消息的,其他的客户端不会收到
C
A
C
P
这个chat.io 封装了socket.io的一些方法特别是对指定用户的封装对P2P的聊天实现比较方便
S
- socket.io不能点对点
- 消息都已服务器为中心转发
- 在服务端保存一个用户的所有client列表,如{userId1:[client1,client2],userId2:[client1,client2]}
- 客户端发送时指明目的用户(如以userId标识,权限、安全之类的另作验证即可)
- 服务器查找目的用户所有client,emit出去即可
A
你是指2端都是client?
K
同问
D
间接的靠服务器转发的方式应该可以吧,直接的肯定不行
D
W
socket.io也需要运行在浏览器中,怎么可能p2p?
D
貌似html5将来真的可以做到peer to peer
但我不知道进一步的细节。
Z
@italkboy 的方法可行,现在基本就是这么干的~
G
P2P必须UDP。不是socket.io的责任。
W
引用 italkboy用服务端做转发就行了,比如a、b这样通信: 创建socketMap对象用来记录对应socket,当客户端a、b连接时: socketMap['a'] = socketA; socketMap[...
囧了。。。这还不如给两个人单独开个房间呢。
socket.join('room_ab');
io.sockets.in('room_ab').emit('msg', 'hello')
J
看到个模块 chat.io , 基本上把 socket.io 封装了一遍, 加了发送到指定用户的方法
https://github.com/DanielBaulig/chat.io
https://github.com/DanielBaulig/chat.io/blob/master/package.json
参与回复
登录后即可参与回复。登录