使用 socket.io 和NodeJS的支付网关



我正在开发一个支付网关(具有2因素授权,2FA),服务器端带有node/express,客户端带有angular js。

来自客户端 --> 服务器的通信可以通过POST请求完成,但我希望来自服务器 --> 客户端的通信通过 socket.io 进行。

现在,对于发起付款的新用户,POST请求将从客户端发送到服务器,数据将被处理并发送回响应。由于非常非常具体的原因,响应不能作为收到的POST请求中的res的一部分发送。

app.post('/receive', function(req,res){
   data = req.body
   res.send('success')
   // do something with the data
   // Details regarding 2FA will be sent later via socket.io
}

经过一些处理后,有关2因素授权的数据将发送给客户端。

io.on('2fa', {name:name, oneTimePassword:qwerty //and additional details})

我可以从客户端收听频道2fa,但在此上发出的每条消息都将发送到所有客户端。我需要一种方法来仅向启动该特定付款流程的特定客户发送消息。

每笔交易都将使用ECDH进行加密。UUID 将可用于交易、启动客户以及正在为其付款的订单号。

感谢对上述内容的任何指导。

Socket.io 有房间。如果您只想让买家和卖家听到身份验证结果,请将它们放入房间并向房间本身发送消息。客户端不会更改。您只需从客户端到服务器的socket.emit,服务器就会将客户端与所有其他适当的方放入一个房间,并且所有后续通信将仅发送到房间而不是通道2fa。

这是来自我开发的html5多人游戏,当客户端加入游戏室时,服务器端发生的情况如下:

socket.on('joingame', function(data){
  if(livingplayers[data.room] && livingplayers[data.room][data.id]){
    socket.emit('joinfail', 'That name is taken');
  } else {
    socket.join(data.room);
    socket.emit('joingame', data);
  }
});
所以,正如你在这里看到的,我把客户端加入游戏,我

从同一个渠道回复,我通知客户他成功加入了游戏,在服务器端,我把客户端放进了他加入的房间。任何后续的游戏内操作将仅广播到客户端刚刚加入的房间

相关内容

  • 没有找到相关文章

最新更新