real-time - Nodejs 网络 - 实时通信

标签 real-time node.js

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

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

我有几个问题:

1) NodeJs 如何处理服务器到客户端的通信?你有什么办法可以将信息推送给客户吗?或者客户端需要不断向服务器发出请求以查看是否有任何更改?

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

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

提前致谢。

最佳答案

3) How Can be handle client-to-client communication (of course thru the server)?

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

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

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

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

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

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.');
  });
});

关于real-time - Nodejs 网络 - 实时通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3897426/

相关文章:

c++ - 使用 Python 和 C++ 进行实时处理和回调

azure - 函数 'SignalR' 的监听器无法启动。 Azure 函数与信号器绑定(bind)

c# - MS 图表比例 View 和线程

javascript - Array.prototype.map() 需要来自箭头函数 array-callback-return 的返回值

node.js - Mongoose 连接 connectTimeoutMS

javascript - 有什么方法可以在网络 worker 关闭之前执行操作吗?

linux - C 中进程的不同实例分配不同的任务

javascript - 实时 Web 应用程序的短轮询与长轮询?

node.js - MongoDB closeSphere 只返回 100 个结果?

node.js - 迁移到新控制台后 Firebase 部署损坏 - "Error: Authentication required."