apache cordovaアプリケーションでsocket.ioサーバーとsocket.ioクライアント間の接続に問題があります。それはnode.jsで動作するサーバには接続しません。Cordovaソケットio xhrポーリングエラー
次のように私のsocket.ioサーバのコードは次のように
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket) {
console.log('socket connected');
socket.on('disconnect', function() {
console.log('socket disconnected');
});
socket.emit('text', 'wow. such event. very real time.');
});
server.listen(3000);
マイコルドバjsのコードは次のとおりです。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log("Hello from app 1234");
var socket = io('http://localhost:3000', {reconnect: true});
console.log("socket created");
socket.on('connect', function() {
console.log("Connection created!");
alert("connection ok");
socket.on('text', function(text) {
alert(text);
});
});
}
私はサーブコルドバと私のブラウザでローカルで実行すると、それが実行されます良い。 また、任意のサーバーに対して通常のXMLHttpRequest()を実行しているときにテストを行い、JSONをうまく受信できました。
エラー:
"socket.io-client:manager connect_error +49ms"
"engine.io-client:socket socket error %j +50ms",Error: xhr poll error
"socket.io-client:manager connect attempt will timeout after %d +113ms",20000
"engine.io-client:polling-xhr xhr poll +5s"
"engine.io-client:polling-xhr xhr data %s +1ms",null
"engine.io-client:socket setting transport %s +110ms","polling"
"engine.io-client:polling-xhr xhr open %s: %s +28ms","GET","http://localhost:3000/socket.io/?EIO=2&transport=polling&t=1481551911376-8"
私の問題とどのように私はさらにそれをデバッグすることができ何ができますか?
編集:私は、本当のdevice
上あるいはemulator
に使用cordova emulate android
実際のデバイスからテストしていますか? – Beat
@Beatが編集されました。エミュレータでテスト中です – taivo