我们有几个node.js进程应该能够传递消息,这样做最有效的方法是什么?如何使用node_redis pub/sub
编辑:进程可能在不同的机器上运行
服务器是否可以使用Socket.IO连接到另一个服务器并被视为客户端?
并让它加入房间,收到io.sockets.in('lobby').emit().和更多?
第一台服务器也在监听连接/消息.
嘿布拉德,这是我下面的完整.js应用程序供参考:
var io = require("socket.io").listen(8099);
io.set('log level', 1);
io.sockets.on("connection", function (socket) {
console.log('A Client has Connected to this Server');
//Let Everyone Know I just Joined
socket.broadcast.to('lobby').emit("message",'UC,' + socket.id); // Send to everyone in Room but NOT me
socket.on("message", function (data) {
//Missing code
socket2.send('message,' + data); //Forward Message to Second Server
});
socket.on("disconnect", function (data) {
//Send Notification to Second Server
//Need to figure out later
//Send Notification to Everyone
socket.broadcast.emit("message",'UD,' + socket.id ); //Send to Everyone …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码连接到socket.io-client:
服务器:
// Load requirements
var http = require('http'),
io = require('socket.io');
// Create server & socket
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(404, {'Content-Type': 'text/html'});
res.end('<h1>Aw, snap! 404</h1>');
});
server.listen(8080);
io = io.listen(server);
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
Run Code Online (Sandbox Code Playgroud)
客户:
console.log('1');
// Connect to server
var io = require('socket.io-client')
var socket = io.connect('localhost:8080', {reconnect: true});
console.log('2');
// Add a connect …Run Code Online (Sandbox Code Playgroud) 我有一个使用Node.js的服务器socket.io,该服务器通过HTTPS接受来自客户端的连接。
我知道此服务器可以正常工作,因为我能够通过浏览器连接到该服务器。
问题是我无法创建节点应用程序作为客户端连接到该服务器。
我正在使用以下代码:
const io = require("socket.io-client");
const socket = io.connect("https://my.website.com:3002", { secure: true, reconnect: true });
socket.on("connect", function(){
console.log("connected");
});
socket.on("disconnect", function(){
console.log("disconnected");
});
socket.on("error", console.error);
Run Code Online (Sandbox Code Playgroud)
服务器未注册任何连接,此应用程序未记录任何错误。似乎我连接到错误的服务器,但是当我使用浏览器时,相同的URL可以正常工作。
我已经在github和官方文档中搜索了答案。甚至来自stackoverflow的类似问题似乎也不起作用:
我究竟做错了什么 ?