织梦CMS - 轻松建站从此开始!

沙龙国际_沙龙国际亚洲第一品牌网上娱乐

当前位置: 主页 > 沙龙国际娱乐网址 >

node-websocket-server实现两两客户端双向通信最佳实

时间:2017-07-17 23:27来源:未知 作者:admin 点击:
假设有如下场景: 有浏览器A和浏览器B,后端采用nodejs node-websocket-server。现想办法让他们通过nodejs,采用websocket实现双向通信。 由于每一个连接到服务器的客户端都会被node-websocket-s

假设有如下场景:

有浏览器A和浏览器B,后端采用nodejs node-websocket-server。现想办法让他们通过nodejs,采用websocket实现双向通信。

由于每一个连接到服务器的客户端都会被node-websocket-server指定一个conn.id,所以尝试如下方法:
当连接建立的时候,把服务器分配给他们的id发送给客户端浏览器,客户端把这个id记下。然后,假设A要向B发送消息,则发送一个

{ senderId: 12345, receiverId: 67890 }

给服务器,然后服务器调用

server.send(receiverId, JSON.stringify(msgToSend));

也就是:

server.send(67890, data);

但是测试发现客户端B没有反应,甚至连客户端的onmessage事件都没有触发。但如果是:

server.send(senderId, JSON.stringify(msgToSend));

的话,客户端A可以接收到自己发出去的消息。

看来通过这个server分配的id来实现通信失败了。
猜测一下:在node-websocket-server中,每一个被响应的connection事件都是独立的,其分配的conn.id不能被其他connection访问。
这样一来,要实现A和B通信的话,似乎必须得用server.broadcast(data)来广播数据。可是这样一来,浪费了大量资源,同时流量将大大增加,简直不能算是解决方案。

小弟不才,恳请各位指教,小弟先在这里谢谢大家了!

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容