我想传达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套接字与page1.js通信(客户端 - 服务器)page1.html,但如何将数据从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 谢谢你的回答
答案 0 :(得分:0)
您有两种选择:
1)创建HTTP路由,处理两个服务器之间的发送/获取数据(我认为它是微不足道的,你知道如何配置路由和服务器之间的获取/发布日期)
2)您也可以在服务器级别使用套接字。看一下node的网络文档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('hello\r\n');
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!\r\n');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('client disconnected');
});
您也可以使用json-socket。
答案 1 :(得分:0)
似乎你可以通过简单的方式实现这一点,但你不知道,因为你说你想要将数据从page1发送到app1,从app1发送到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