我正在使用expressjs
制作简单的websocket演示(ws)服务器端代码
var WebSocketServer = require('ws').Server
, http = require('http')
, express = require('express')
, app = express();
app.configure('development', function() {
app.use(express.json());
app.use(express.urlencoded());
app.use(app.router);
});
app.set('view engine', 'ejs');
app.set('view options', {layout: false});
var server = http.createServer(app);
server.listen(2678);
app.get('/', function(req, res) {
res.redirect('views/index.html');
});
var wss = new WebSocketServer({server: server});
wss.on('connection', function(ws) {
console.log("Connection Open");
ws.on('message', function(e) {
console.log(e); // Can't get message here
});
ws.on('close', function() {
console.log('stopping client interval');
});
});
我的客户端(浏览器)
ws = new WebSocket('ws://localhost:2678?uid=123&token=abc123');
ws.onopen = function() {
console.log('Connection Open');
console.log('readyState:' + ws.readyState); // readyState:1
ws.send("Test msg");
console.log("sent!");
};
问题:
当我执行上面的代码时,我可以在两侧收到消息“连接打开”消息。但是ws.send(“测试消息”)不能在客户端工作。我无法发送客户端和服务器端的数据。我在Stack Overflow上发现了很多问题。但我无法找到适当的解决方案。 当我在2-3分钟后关闭浏览器时,我在服务器端收到了以下消息。
Test msg
stopping client interval
我已经审阅了以下链接。但他们不适合我。