在服务器和任意 NodeJS 进程之间创建网络套接字流
Create web socket streams between a server and arbitrary NodeJS processes
在 localhost:5000
上有一个服务器 运行,我想通过网络套接字从另一个 NodeJS 进程连接到该服务器。
根据我使用网络套接字的经验,我总是需要服务器对象来创建网络套接字服务器。
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
变量(因为此服务器将部署在云中的某个位置),我如何通过网络套接字连接到此服务器?
一个丑陋的解决方案是通过 HTTP 请求,但这不是网络套接字。我想保持连接打开并在那里传输数据。
我该怎么做?
你得到 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(){});
在 localhost:5000
上有一个服务器 运行,我想通过网络套接字从另一个 NodeJS 进程连接到该服务器。
根据我使用网络套接字的经验,我总是需要服务器对象来创建网络套接字服务器。
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
变量(因为此服务器将部署在云中的某个位置),我如何通过网络套接字连接到此服务器?
一个丑陋的解决方案是通过 HTTP 请求,但这不是网络套接字。我想保持连接打开并在那里传输数据。
我该怎么做?
你得到 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(){});