1
我的angularjs客戶端websocketserver可以正確發送到服務器,但是當從服務器發送到客戶端時,客戶端不會註冊該事件。ng-websocket和ws:客戶端發送成功但沒有收到
我使用在客戶端角的WebSockets和WS我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');
});
};
有人能看到什麼錯?
我剛剛得知,「傍」事件是一個自定義事件從服務器發送:在line 135我們有 'var decoded = JSON.parse(message.data); me。$$ fireEvent(decoded.event,decoded.data);' 因此,您可以在您的服務器響應中設置事件屬性,然後從您的控制器中獲取該屬性。'ws。$ on('customEvent',function(response ){ console.log(「DATA FROM SERVER」,response);'因爲它觸發兩個事件,所以我決定使用「$ message」事件並從ng-socket.js中刪除自定義的事件 –