首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs网络-实时通信

Nodejs网络-实时通信
EN

Stack Overflow用户
提问于 2010-10-10 02:50:55
回答 2查看 922关注 0票数 4

我是node.js的新手,我想问一个关于它是如何工作的简单问题。

我过去曾使用FM进行客户端到客户端的通信和实时应用程序。例如,在创建协作应用程序时,您需要查看其他用户在做什么。我想用NodeJS来探索这一点。

我有几个问题:

1) NodeJs如何处理服务器端到客户端的通信?你有没有办法把信息推送给客户?或者客户端需要不断地向服务器发出请求,以查看是否发生了任何变化?

2)服务器和客户端之间是否存在永久连接?

3)如何处理客户端到客户端的通信(当然是通过服务器)?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-10 09:32:50

3)如何处理客户端到客户端的通信(当然是通过服务器)?

一个简单的解决方案是在服务器和每个客户端之间打开一个websocket:

客户端A <==websocket==>服务器<==websocket==>客户端B

例如,如果您使用Socket.IO,则通过这种方式进行客户端到客户端通信非常容易。

当服务器收到来自一个客户端的消息时,您只需将其广播到所有客户端或将其发送到一个特定的客户端,具体取决于您的用例。

使用Socket.IO的一些示例代码:

代码语言:javascript
复制
var socket = io.listen(server);
socket.on('connection', function(client) {
  client.on('message', function(msg) {
    broadcast(msg); // broadcast message to all clients
    // OR
    socket.clients[session_id].send(msg); // send message to one client
  });

  client.on('disconnect', function( ) {
    console.log('Client Disconnected.');
  });
});
票数 3
EN

Stack Overflow用户

发布于 2010-10-10 07:59:21

最近你提出了很多关于Node.js的问题;)

正如托比已经说过的那样,

  1. 可以做HTTP,TCP/UDP和Unix套接字。当您建立永久连接时,您当然可以将数据推送到客户端。
  2. 由于您正在谈论基于浏览器的客户端,因此有许多方法可以实现这一点。例如,您可以使用具有闪存回退的WebSockets。如果你对低层次的细节不感兴趣,想要一个完整的包,看看Socket.IO.
  3. WebSockets不能做到这一点,据我所知,闪存也不能做到这一点。因此,除非你想进入Java/Silverlight领域,否则你需要通过你的服务器路由请求。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3897426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档