[英]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.