【发布时间】:2016-12-28 08:40:31
【问题描述】:
尝试将 socket.io-client 与 react-native(目前为 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.
【问题讨论】:
-
你试过在 socket.on 外部发射吗?
-
我有。它似乎也没有发出任何东西......
-
在服务器上试试我的答案
标签: ios node.js socket.io react-native