2015-04-20 80 views
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'); 
     }); 
    }; 

有人能看到什么错?

回答

0

我使用ng-websocket与PHP套接字,并且我有同样的问题。 我刚刚打开了ng-websocket.js和..guess什么? “乒乓”和“乒乓”事件不存在! 的“进入”事件被称为“$消息” ...... 这是如何从服务器获取数据:

ws.$on('$message', function (response) { 
      console.log("DATA FROM SERVER", response); 
+0

我刚刚得知,“傍”事件是一个自定义事件从服务器发送:在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中删除自定义的事件 –

相关问题