繁体   English   中英

在快速路由内部发射(使用 socket.io-client)

[英]Emitting inside express route (using socket.io-client)

我最近开始重构一些代码,将我之前制作的前端和后端分离为一个组合服务。

我现在遇到了一个问题,我需要 web 服务器向数据服务器发送(验证后)。 我之前通过在添加此代码后从快速路由内部调用发出来管理这个

var io = require('socket.io')(server);
app.io = io;
app.use(function(req, res, next) {
        req.io = socket;
        next();
});

// Then inside of the route

app.post('/make', function(request, response) {
        if (request.session.loggedin = true) {
                var sio = request.io;

                var to = request.body.to;
                var amt = request.body.amt;
                var from = request.body.from;
                if (to.length > 0 && amt != 0) {
                        if (amt <= request.session.balance) {
                          sio.emit('send-transactions', {"to": to, "from": from, "amt": amt});

现在这些是分开的,web 服务器只是作为客户端连接(使用 socket.io-client),所以我似乎无法让它工作。

我在用着,

var socket = require('socket.io-client')('wss://ip:port', {secure:true,rejectUnauthorized:false, reconnect:true});

我尝试将“io”的所有引用更改为“socket”,因为我的变量不同,但我不知道是否是客户端库不能这样做。

Tl; dr-我正在尝试从 web 服务器(技术上是客户端)向后端(socket.io 服务器)发出事件,然后该事件将广播给所有客户端。

只是想关闭这个,所以这里是解决方案:

由于我的路由以前是供服务器发送给所有客户端的,所以在服务器端使用与客户端相同的路由不会被触发。 我只需要更改到服务器端的路由,现在完整的序列已经完成并发送到该路由,然后发送到所有客户端

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM