2016-08-21 56 views
1

嘗試使用socket.io客戶端與react-native(現在的ios),到目前爲止從客戶端連接/接收服務器端事件似乎工作正常。但是,我似乎無法從客戶端發出任何事件?反應原生套接字io沒有事件從客戶端發出

客戶

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 

並在客戶端我看到「服務器發射乒...「,但乒乓事件似乎沒有做任何事情?我嘗試通過StackOverflow中提到的解決方案捕獲服務器上的所有事件,但看起來沒有事件來自客戶端。有任何想法嗎?

使用最新的RN版本0.31。

也看到這個錯誤,當我第一次運行在Xcode的應用程序,它可能是這個原因?:

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

你嘗試過發光外socket.on? –

+0

我有。它似乎並沒有發射任何東西... – tetutato

+0

試試我在服務器上的回答 –

回答

0

請嘗試:

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

同樣的問題:/我有一種感覺,這是一個錯誤,如何反應原生包裝發射器代碼 – tetutato

+0

讓我嘗試創建一個RN應用程序快速運行這個 –

+1

不工作我的 –