两个node.js应用之间的Socket.io触发事件?

迈克尔·约瑟夫·奥布里

我有两台服务器,一台用于后端应用程序,一台用于前端。它们是抽象的,但是共享相同的数据库,我需要两者都使用socket.io在彼此之间传递实时事件。

前端

// serves a front end website
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);

io.sockets.on('connection', function(socket) {

    socket.on('createRoom', function(room) {
        socket.join(room); // use this to create a room for each socket (room) is from client side
    });

    socket.on('messageFromClient', function(data) {
        console.log(data)
        socket.broadcast.to(data.chatRoom).emit('messageFromServer', data);
    });


});

后端

//Serves a back end app
var appPort  = 3100; 

var express  = require('express');
var app      = express();
var http     = require('http');
var server   = http.createServer(app);
var io       = require('socket.io').listen(server);

io.sockets.on('connection', function(socket) {

    socket.on('createRoom', function(room) {
        socket.join(room); // use this to create a room for each socket (room) is from client side
    });

    socket.on('messageFromClient', function(data) {
        console.log(data)
        socket.broadcast.to(data.chatRoom).emit('messageFromServer', data);
    });


});

作为管理员,我想登录到我的后端,在那里我可以看到所有登录的人,在那里我可以单击我想与之聊天的人。

假设他们已登录前端网站,那么当管理员提交消息客户端时,他们会触发此socket.emit('messageFromClient', Message);操作,我如何messageFromClient使用9200后端端口的端口提交在前端进行触发3100

普什卡

对于此用例,您实际上不需要在前端启动socket.io服务器。

使它正常工作的方法是:

  1. 保持后端不变,用作Socket.IO服务器
  2. 在字体末尾,使用Socket.IO客户端连接到服务器。

您可以通过调用安装客户端

npm install socket.io-client

然后使用以下命令连接到服务器:

var io = require('socket.io-client'),
socket = io.connect('localhost', {
    port: 3100
});
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('messageFromClient', { user: 'someuser1', msg: 'i am online' });

然后,您可以使用相应的用户名创建套接字对象的映射,并根据您的业务逻辑向该用户发送消息。

更多信息 :

您可能需要添加诸如客户端断开连接等情况。您可以在此处阅读有关回拨的更多信息:

https://github.com/Automattic/socket.io-client

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js socket.io断开事件不会触发

来自分类Dev

两次触发Socket.IO事件

来自分类Dev

两个片段之间的EventBus事件未触发

来自分类Dev

事件不会在使用 Node js 和 socket.io 的客户端上触发

来自分类Dev

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

来自分类Dev

Socket.io-事件侦听器触发两次

来自分类Dev

socket.io中的一个客户端无限次触发连接事件

来自分类Dev

在两个特定的android应用之间共享文件

来自分类Dev

Android:设置两个应用之间的依赖关系

来自分类Dev

在两个Laravel应用程序之间共享事件

来自分类Dev

socket.io - 事件不能正确触发

来自分类Dev

两个连续事件之间的天数

来自分类Dev

两个事件之间的时间

来自分类Dev

JS:两个点击事件,JS如何决定哪个先触发

来自分类Dev

等待两个玩家选择答案的Socket.io事件

来自分类Dev

在两个node.js实例之间共享文件

来自分类Dev

合并事件不会触发两个事件

来自分类Dev

PostgreSQL函数/两个日期之间的触发天数

来自分类Dev

Socket.io消息事件多次触发

来自分类Dev

在新连接上触发Socket.io断开事件

来自分类Dev

使用 Socket.io 无法在两个 IOS 设备之间接收消息

来自分类Dev

如何获取jQuery中两个事件之间的时差?

来自分类Dev

两个事件之间的百分比差异

来自分类Dev

使用MySql在两个日期之间获取事件

来自分类Dev

ios在两个uiscrollview之间移动触摸事件

来自分类Dev

BigQuery中两个不同事件之间的时差

来自分类Dev

如何计算两个“ keyup”事件之间的时间间隔

来自分类Dev

检索两个日期之间的Microsoft Live日历事件

来自分类Dev

如何使两个事件之间发生延迟