使用nodejs的客户端客户通信



我想传达2个网页page1.html和page2.html。我以为Page1与App1.js节点应用程序和page2.html有关app2.js节点应用程序。这个想法是使用WebSockets将数据从Page1.html发送到App1.js,然后App1.js将将数据发送到Page2.html。我的第一个想法是app1.js将数据发送到app2.js,然后将app2.js发送到page2.html。我知道如何使用Web插座与App1.js进行通信(客户端服务器),但是如何将数据从app1.js发送到app2.js?在app1.js中我有

io = require('socket.io').listen(3000); //and 
io.sockets.on('connection', function (socket) {
    socket.on('GETDATAFROMPAGE1', function (data){
         .....I Get data to be sent to app2?
    });
}

我需要为其他端口创建一个新的IO2吗?如何将数据发送到App2.html?我知道如何进行客户端服务器通信,但我不知道服务器服务器通信以及如何混合两者摘要:page1.html-> app1.js-> app2.js-> page2.html使用WebSockets感谢您的回答

似乎可以简单地实现它,但是您不知道,因为您说要将数据从第1页到App1以及从App1到App2以及App2以及从App2到Page2。因此,基本上,如果我使您正确,则要将数据从Page1发送到Page2。您可以在app.js中创建一台服务器,然后使用socket.io连接两个页面以相互发送数据。

假设您有page1.html

socket.emit('GETDATAFROMPAGE1', data);

page2.html

socket.on('dataFromPage1', function(data){
    //do something
});

您有app.js

io.sockets.on('connection', function (socket) {
socket.on('GETDATAFROMPAGE1', function (data){
     socket.broadcast.emit('dataFromPage1', data)
    });
}

广播事件仅散发到数据发件人以外。现在,您可以将数据从Page1.html发送到服务器,从服务器到Page2.html

您有两个选项:

1)创建HTTP路由,该路由处理张贴/使数据返回两个服务器之间(我认为这是微不足道的,您知道如何配置路由并在服务器之间获取/发布日期)

2)您也可以在服务器级别上使用插座。看看Node的Net文档http://nodejs.org/api/net.html

您的代码看起来像这样:

    //server
        var net = require('net');
        var server = net.createServer(function(c) { //'connection' listener
          console.log('server connected');
          c.on('end', function() {
            console.log('server disconnected');
          });
          c.write('hellorn');
          c.pipe(c);
        });
        server.listen(8124, function() { //'listening' listener
          console.log('server bound');
        });
  //client
        var net = require('net');
        var client = net.connect({port: 8124},
            function() { //'connect' listener
          console.log('client connected');
          client.write('world!rn');
        });
        client.on('data', function(data) {
          console.log(data.toString());
          client.end();
        });
        client.on('end', function() {
          console.log('client disconnected');
        });

您也可以使用JSON-Socket。

最新更新