Node.js 使用nodejs的客户端通信
我想交流两个网页page1.html和page2.html。我认为page1与app1.js节点应用程序相关,page2.html与app2.js节点应用程序相关。其思想是使用WebSocket将数据从page1.html发送到app1.js,然后app1.js将数据发送到page2.html。我的第一个想法是,app1.js将数据发送到app2.js,然后将app2.js发送到page2.html。我知道如何使用web套接字将page1.html与app1.js进行通信(客户端-服务器),但如何将数据从app1.js发送到app2.js?在app1.js中,我有Node.js 使用nodejs的客户端通信,node.js,websocket,client-server,Node.js,Websocket,Client Server,我想交流两个网页page1.html和page2.html。我认为page1与app1.js节点应用程序相关,page2.html与app2.js节点应用程序相关。其思想是使用WebSocket将数据从page1.html发送到app1.js,然后app1.js将数据发送到page2.html。我的第一个想法是,app1.js将数据发送到app2.js,然后将app2.js发送到page2.html。我知道如何使用web套接字将page1.html与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?
我知道如何进行客户机-服务器通信,但我不知道服务器-服务器通信以及如何将两者混合使用
摘要:使用WebSocket的page1.html->app1.js-->app2.js-->page2.html
感谢您的回答您有两个选择:
1) 创建HTTP路由,处理两台服务器之间的后端发布/获取数据(我假设这很简单,您知道如何在服务器之间配置路由和获取/发布日期)
2) 您也可以在服务器级别使用套接字。请看一下node的net文档
您的代码如下所示:
//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');
});
您也可以使用。看起来您可以用一种简单的方式实现这一点,但您不知道,因为您说过要将数据从page1发送到app1,从app1发送到app2,从app2发送到page2。所以基本上如果我没弄错的话,你想把数据从第1页发送到第2页。您只能在app.js中创建一台服务器,并使用socket.io连接这两个页面以相互发送数据 假设您有
page1.html
:
socket.emit('GETDATAFROMPAGE1', data);
socket.on('dataFromPage1', function(data){
//do something
});
和page2.html
:
socket.emit('GETDATAFROMPAGE1', data);
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谢谢。。。要在代码中使用它:我需要在套接字中使用服务器。on?->on('GETDATAFROMPAGE1',函数(数据){…….var server=net.createServer(……您的代码……});您的代码用于在浏览器和服务器之间进行通信。因此,在您的代码中,您需要通过管道将数据传输到app1 app2套接字流。我想给您一点意见,但我没有15点的声誉,请不要担心。。总有一天你会成功的。而不是给我一个点-帮助别人,所以:)这似乎是一个更好的解决方案,谢谢。。。如果page1.html与page2.html不同,我将尝试如何仅使用app.js打开page1.html和page2.html?我认为每个网页都与js node应用程序相关?您首先需要了解node.js的工作原理。您可以使用单个服务器呈现任意数量的页面。查找路由和渲染。使用Node.js的模块。请参阅Node.js express和socket.io的任何教程