我想传达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。