我的angularjs客户端websocketserver可以正确地发送到服务器,但是当从服务器发送到客户端时,客户端不会注册该事件。
我在客户端使用angular-websockets,而在我的express.js服务器上使用
这是我的代码。
服务器
var port = process.env.PORT || 3002;
var server = http.createServer(app); // app = express
server.listen(port);
var socketComs = require('./lib/socketcoms').connect(server);
var connect = function(server) {
var wss = new WebSocketServer({
server: server
});
wss.on('connection', function(ws) {
console.log("websocket connection open");
ws.on('message', function incoming(message) {
console.log('received', message); // THIS WORKS FINE
});
var id = setInterval(function() {
ws.send('pong', 'data 123', function(err) {
console.log('sent pong', err); // THIS IS NEVER CAUGHT BY CLIENT, err = clean
});
}, 2000); // Pong is never received
});
};
客户端
var connect = function() {
ws.$on('$open', function() {
console.log('wow its working');
ws.$emit('message', 'some message');
});
ws.$on('pong', function(data) {
console.log('yes', data);
});
ws.$on('$close', function(data) {
console.log('wss closed');
});
};
有人能看出出了什么问题吗?
答案 0 :(得分:0)
我正在使用带有PHP套接字的ng-websocket,我也有同样的问题。 我刚刚打开了ng-websocket.js并猜到了什么? “ping”和“pong”事件不存在! “传入”事件被称为“$ message”...... 这是从服务器获取数据的方法:
ws.$on('$message', function (response) {
console.log("DATA FROM SERVER", response);