ng-websocket和ws:客户端发送成功但未收到

时间:2015-04-20 13:11:55

标签: javascript angularjs node.js express websocket

我的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');
      });
    };

有人能看出出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

我正在使用带有PHP套接字的ng-websocket,我也有同样的问题。 我刚刚打开了ng-websocket.js并猜到了什么? “ping”和“pong”事件不存在! “传入”事件被称为“$ message”...... 这是从服务器获取数据的方法:

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