有两个node.js服务器的Socket.io?

我很困惑如何使用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 :我需要这个能够接收和发出事件从本地主机: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我不知道这是贬值的东西,但没有一个现代的文档提到这一点。

 // 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.