NodeJS:post请求和socket.io的组合

时间:2016-11-03 15:59:01

标签: node.js post socket.io

我正在创建一个Web应用程序,它有两个Web门户和一个节点服务器。第一个门户发送HTTP请求(POST),而第二个门户网站应显示它们。然后,用户将键入一些文本并通过套接字将其发送回服务器,并将其重定向到第一个门户。我已经使用socket.io在第二个门户和服务器之间进行通信,而第一个通过post发布。我正在努力寻找从第二个门户网站接收答案的方法并将答案发送回第一个门户网站。这是代码。

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

server.listen(5700);

io.on('connection', function (socket) {
  console.log("connected" + socket.id);

});

app.post('/server', rawBody, function(req, res, next){

  var question = req.query.question;
  io.emit('question', {data: question});

  io.on('answer', function(data) {
    var body = {
      response: "data.answer"
    };

    res.json(body);
  });
});

我发现io.on('answer', function(data)不正确。但我需要的是这样的事情:

io.on('answer', function(data) {
        var body = {
          response: "data.answer"
        };

        res.json(body);
      });

您能否告诉我如何从套接字中获取答案,并在收到回复后,将回复发送回第一个门户网站。

1 个答案:

答案 0 :(得分:0)

这样的事情:

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

server.listen(5700);

io.on('connection', function (socket) {
  console.log("connected" + socket.id);

  app.post('/server', rawBody, function(req, res, next){

    var question = req.query.question;
    socket.emit('question', {data: question});

  });
  socket.on('answer', function(data) {
    var body = {
      response: "data.answer"
    };

    res.json(body);
  });

});