【问题标题】:Pass data from a Node.js server to a socket.io app将数据从 Node.js 服务器传递到 socket.io 应用程序
【发布时间】:2012-03-22 00:32:31
【问题描述】:

我有一个非常简单的应用程序:

// Require HTTP module (to start server) and Socket.IO
var http = require('http'), 
    io = require('socket.io'),
    url  = require('url');

var server = http.createServer(function(req, res){ 
  req.on('data', function(data){
    console.log('Received Data');
  })
});
server.listen(3000);

// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);

// Add a connect listener
socket.on('connection', function(client){ 

  server.on('data',function(event){ 
     client.send(url.search);
     console.log('Received Data from socket app');
  });

  client.on('disconnect',function(){
    console.log('Server has disconnected');
  });

});

我需要 curl 节点服务器以将一些发布数据传递给它,然后我希望将这些数据传递给 socket.io 应用程序,以便它可以反馈给当前连接的客户端。

有没有办法做到这一点?

非常感谢,

【问题讨论】:

  • 数据从何而来?
  • @adam 来自 PHP 脚本,当此数据到达节点服务器时,我希望通知所有连接的客户端。

标签: node.js socket.io


【解决方案1】:

你从socket得到的

var socket = io.listen(server);

您可以随时致电emit 向所有连接的客户端发送消息。所以在你的http服务器中,你可以emit发布数据:

var server = http.createServer(function(req, res){ 
  var body = '';
  req.on('data', function(data){
    console.log('Received Data');
    body += data;
  });
  req.on('end', function() {
    // Emit the data to all clients
    socket.emit('foo message', body);
  });
});

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2012-04-16
    相关资源
    最近更新 更多