React native socket io没有从客户端发出任何事件

时间:2016-08-21 20:36:06

标签: ios node.js socket.io react-native

尝试使用带有react-native的socket.io-client(目前为ios),到目前为止,来自客户端的连接/接收服务器端事件似乎工作正常。但是,我似乎无法从客户端发出任何事件?

客户端

var socket = io("http://localhost:3000");
    socket.on('connect', function(){
        socket.on('ping', function(e) {
            console.log('Server emitted ping: ' + e);
            socket.emit('pong', 'hi server!');
        });
        socket.on('disconnect', function(){
            console.log("disconnect");
        });
    });

服务器(Node.js的)

var io = require('socket.io')(server);
io.on('connection', function (socket) {
  console.log('connected...');
  socket.on('pong', function (data) {
    console.log("Hmm?");
    console.log(data);
  });

  setTimeout(function() {
    console.log("Saying hello");
    socket.emit('ping', { message: 'Hello from server ' + Date.now() });

  }, 1000);
});

所以从服务器端看,我看到了日志

connected...
Saying hello

在客户端,我看到"服务器发出ping ...",但pong事件似乎没有做任何事情?我尝试通过StackOverflow中提到的解决方案捕获服务器上的所有事件,但看起来没有事件来自客户端。有任何想法吗?

使用最新的RN版本0.31。

当我第一次在Xcode中运行应用程序时也看到这个错误,这可能是原因吗?:

[warn][tid:main][RCTEventEmitter.m:52] Sending `websocketFailed` with no listeners registered.

1 个答案:

答案 0 :(得分:0)

请尝试:

io.sockets.on('connection', function(socket) {
    ....
})