gpt4 book ai didi

node.js - 在服务器和任意 NodeJS 进程之间创建 Web 套接字流

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:47 25 4
gpt4 key购买 nike

有一个在 localhost:5000 上运行的服务器,我想通过 Web 套接字从另一个 NodeJS 进程连接到该服务器。

根据我使用 Web 套接字的经验,我始终需要服务器对象来创建 Web 套接字服务器。

var http = require('http');

// create http server
var server = http.createServer(function(req, res) {
// serve files and responses
...
});

// Socket.io server listens to our app
var io = require('socket.io').listen(server);

// Send current time to all connected clients
function sendTime() {
io.sockets.emit('time', { time: new Date().toJSON() });
}

// Send current time every 10 secs
setInterval(sendTime, 10000);

// Emit welcome message on connection
io.sockets.on('connection', function(socket) {
socket.emit('welcome', { message: 'Welcome!' });
socket.on('i am client', console.log);
});

server.listen(3000);

这是一个使用 socket.io 的小示例。如果无法获取 server 变量(因为该服务器将部署在云中的某个位置),我如何通过 Web 套接字连接到该服务器?

一个丑陋的解决方案是通过 HTTP 请求,但这不是 Web 套接字。我想保持连接打开并在那里传输数据。

我怎样才能做到这一点?

最佳答案

您获取 socket.io-client 模块,require() 将其放入您的其他 Nodejs 服务器中,并使用其他服务器(在本例中为客户端)中的客户端模块,并从该服务器连接到此服务器。

此处的示例代码:https://github.com/automattic/socket.io-client

var socket = require('socket.io-client')('http://localhost');
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});

关于node.js - 在服务器和任意 NodeJS 进程之间创建 Web 套接字流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28524705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com