Socket.io 有两台 node.js 服务器?
Socket.io with two node.js servers?
我很困惑如何使用 socket.io 以便两个节点服务器可以在彼此之间发出事件。
Server.js localhost:9200
io.sockets.on('connection', function(socket) {
socket.on('messageFromClient', function(data) {
socket.broadcast.to(data.chatRoom).emit('messageFromServer', data);
});
});
这个套接字连接像这样监听服务器
var appPort = 9200;
var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
// Launch server
server.listen(appPort);
我有一个由 node.js 提供服务的网站... Server.js localhost:3000:我需要这个才能接收和从 localhost:9200
发出事件
如何为 localhost:3000 设置 server.js?
我想通了,其实很简单。可以有两个节点服务器,但只有一个服务器需要使用 socket.io 并处理事件。连接所需要做的就是通过 CORS 共享客户端脚本,我想避免 CORS,但您只需要通过 CORS 共享 socket.io 脚本,不需要其他任何东西,所以还不错。
首先需要允许您的其他域通过 CORS 访问脚本。
// requires cors module I think (var cors = require('cors');)
var corsOptions = {
origin: 'http://localhost:3100',
credentials: true
};
其次,客户端使用 io.connect
很重要,我不确定它是否被折旧了,但是现代文档的 none 提到了这一点。
// What worked for me
var socket = io.connect('http://localhost:3100');
// Docs say
var socket = io('http://localhost:3100'); // ?? I am not sure why but io.connect worked for me.
我很困惑如何使用 socket.io 以便两个节点服务器可以在彼此之间发出事件。
Server.js localhost:9200
io.sockets.on('connection', function(socket) {
socket.on('messageFromClient', function(data) {
socket.broadcast.to(data.chatRoom).emit('messageFromServer', data);
});
});
这个套接字连接像这样监听服务器
var appPort = 9200;
var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
// Launch server
server.listen(appPort);
我有一个由 node.js 提供服务的网站... Server.js localhost:3000:我需要这个才能接收和从 localhost:9200
发出事件如何为 localhost:3000 设置 server.js?
我想通了,其实很简单。可以有两个节点服务器,但只有一个服务器需要使用 socket.io 并处理事件。连接所需要做的就是通过 CORS 共享客户端脚本,我想避免 CORS,但您只需要通过 CORS 共享 socket.io 脚本,不需要其他任何东西,所以还不错。
首先需要允许您的其他域通过 CORS 访问脚本。
// requires cors module I think (var cors = require('cors');)
var corsOptions = {
origin: 'http://localhost:3100',
credentials: true
};
其次,客户端使用 io.connect
很重要,我不确定它是否被折旧了,但是现代文档的 none 提到了这一点。
// What worked for me
var socket = io.connect('http://localhost:3100');
// Docs say
var socket = io('http://localhost:3100'); // ?? I am not sure why but io.connect worked for me.