有两个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.