0
我有一个节点WebServer能够通过Websockets与浏览器(比如browserInstance)和linux终端(比如ProxyInstance)通信。 Web服务器的工作是将数据从终端切换到WebBrowser,然后是副本。请看以下server.js代码:节点服务器不能与express-ws工作
var express = require('express');
var expressWs = require('express-ws');
var expressWs = expressWs(express());
var app = expressWs.app;
var appForpage = express();
var browserInstance;
var ProxyInstance;
var browserCounter = 0;
var ProxyCounter = 0;
app.ws('/fromBrowser', function(ws, req, next) {
console.log("~~~~~~~~~~~~BROWSER");
if(browserCounter == 1){
ws.on('message', function(msg) {
console.log("Messagae from Browser :", msg);
ProxyInstance.send(msg);
});
}else{
browserInstance = ws;
ws.on('message', function(msg) {
console.log("Message from Browser :", msg);
ProxyInstance.send(msg);
});
browserCounter = 1;
}
ws.on('close', function(){
console.log("Ws Connection closed");
});
//next();
});
app.ws('/fromProxy', function(ws, req, next) {
console.log("~~~~~~~~~~~~PROXY");
if(ProxyCounter == 0){
ProxyInstance = ws;
ProxyCounter = 1;
}else if(browserCounter == 1){
ws.on('message', function(msg) {
console.log("Message from Proxy: ", msg);
browserInstance.send(msg);
});
}
ws.on('close', function(){
console.log("Ws Connection closed");
});
//next();
});
appForpage.use(express.static(__dirname + '/public/')); // index.html resides in public directory
appForpage.listen(5000)
app.listen(3000)
首先我创建从代理服务器WS连接(/ fromProxy),然后从浏览器(/ fromBrowser)。连接已成功创建。当我尝试通过网络服务器将数据从浏览器发送到代理时,它工作正常。在尝试通过WebServer与浏览器进行通信时,作为代理服务器端的第一条消息返回,此失败。我还没有收到代理的任何消息。我需要以相同的顺序运行相应的代码(代理优先,然后浏览器..)。
我只是初学者的节点。我没有找到任何通过互联网为我的例子的例子。我在这里错过了什么?