使用Node js app中的Socket.io处理传入的HTTP请求

时间:2016-04-22 15:57:51

标签: node.js express socket.io

我有一个节点应用程序应该通过HTTP GET请求/api/users?data=68从另一个应用程序接收请求并实时显示数据。我有处理传入HTTP请求的api / users路由。首先,我有与socket.io一起使用的节点应用程序但是现在我想处理Http请求。这是我的代码

    var express = require('express');
    var app = express();
    var server   = require('http').Server(app);
    var io = require('socket.io')(server);
    var port = process.env.PORT || 8080
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    var router = express.Router();

    router.get('/api/users', function(req, res) {
    var query = req.param('data');
    io.emit("chat message","some msg");
    });

    io.on('connection', function(socket){
     console.log('client connected');
     socket.on('pass data from HTTP request to the view', function(data){
     console.log(data);
     });

   });

     app.use(router);

     server.listen(port)

Client.js

 var socket = io();
  socket.on('chat message', function (message) {
    //socket.emit('chat message', { my: 'world' });
    console.log('received ');
    });

如何将数据从/ api / users / route传递到套接字连接?谢谢你。

1 个答案:

答案 0 :(得分:1)

如果要将数据发送到所有socket.io连接的客户端,您可以执行以下操作:

io.emit("someMsg", someData);

如果你只想发送一个特定的socket.io连接,那么你需要能够通过socket.id获取你可以做的特定套接字,或者你可以通过其他方式跟踪哪个套接字是哪个