Javascript Nodejs、express和socket.io在两个静态客户端页面之间通信
我正在尝试使用nodejs、express和socket.io为画廊构建一个远程设备 结构如下Javascript Nodejs、express和socket.io在两个静态客户端页面之间通信,javascript,node.js,sockets,express,socket.io,Javascript,Node.js,Sockets,Express,Socket.io,我正在尝试使用nodejs、express和socket.io为画廊构建一个远程设备 结构如下 /index.js /public/screen.html /screen.js /remote.html /remote.js 我们的想法是在remote.html上显示一个图像库,选择一个,然后使用socket.io将所选索引发送到screen.html 到目前为止,我的代码如下所示: index.js remote.js screen.js 从node
/index.js
/public/screen.html
/screen.js
/remote.html
/remote.js
我们的想法是在remote.html上显示一个图像库,选择一个,然后使用socket.io将所选索引发送到screen.html
到目前为止,我的代码如下所示:
index.js
remote.js
screen.js
从node index.js开始,我得到
当加载screen或remote.html时
debug - client authorized
info - handshake authorized MwtGFRCZamcyKkUpK5_W
在我看来:某种程度上建立了联系,但是:
两端均未发送/接收任何消息
没有将连接事件的日志打印到控制台
知道为什么什么都没有发生吗?看来您已经将服务器端代码混合到了客户端中。“连接”事件是需要在服务器上侦听的事件,而不是您的客户端文件。此外,不能从服务器端代码直接调用客户端函数。 以下代码不起作用:
server.listen(8080, function(){
// setup image gallery and stuff...
connectToServer();
});
要实现上述目标,您需要在服务器上安装以下代码:
server.listen(8080, function(){
socket.on('connection', function (socket) {
// setup image gallery and stuff...
socket.emit('connectToServer', myPassedParameters);
});
});
以及客户端上该事件的以下侦听器:
socket.on('connectToServer', function (myPassedParameters) {
var text = document.querySelector('#name');
// stuff for client side here
});
});
除上述内容外,您不能使用socket.io从一个客户机文件调用另一个客户机文件。您必须首先调用服务器,然后在为用户加载另一个文件后调用该文件上的函数
debug - client authorized
info - handshake authorized MwtGFRCZamcyKkUpK5_W
server.listen(8080, function(){
// setup image gallery and stuff...
connectToServer();
});
server.listen(8080, function(){
socket.on('connection', function (socket) {
// setup image gallery and stuff...
socket.emit('connectToServer', myPassedParameters);
});
});
socket.on('connectToServer', function (myPassedParameters) {
var text = document.querySelector('#name');
// stuff for client side here
});
});