Wir haben socket.io in unserem node.js Server eingerichtet. Wir versuchen den Socket.io Java Client und den Socket.io iOS Client zu verwenden. Wir können uns über iOS verbinden, aber wir können keine Verbindung über Android herstellen. Wir haben keine Ahnung, warum Android keine Verbindung herstellt.Socket.io Android Client funktioniert nicht, aber iOS Client funktioniert
Server Side:
var socketIO = require('socket.io');
//var io =
GLOBAL._io = socketIO(httpServer);
_io.on('connection', (socket) => {
console.log('Client connected');
setInterval(() => _io.emit('time', new Date().toTimeString()), 1000);
socket.on('disconnect',() => console.log('Client disconnected'));
});
Android funktioniert nicht
public void addSocketConnection() throws URISyntaxException {
Log.i("Socket.io","Init");
mSocket = IO.socket("http://dev.myapp.com/parse");
mSocket.on(Socket.EVENT_CONNECT,onConnect);
mSocket.on("time",onTime);
mSocket.on(Socket.EVENT_DISCONNECT,onDisconnect);
mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError);
mSocket.on(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);
mSocket.connect();
Log.i("Socket.io","Connect");
}
private Emitter.Listener onTime = new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.i("Socket.io","OnTime");
}
};
private Emitter.Listener onConnect = new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.i("Socket.io","OnConnect");
}
};
private Emitter.Listener onDisconnect = new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.i("Socket.io","DisConnect");
}
};
iOS Arbeits
NSURL* url = [[NSURL alloc] initWithString:@"http://dev.myapp.com/parse"];
SocketIOClient* socket = [[SocketIOClient alloc] initWithSocketURL:url options:@{@"log": @YES, @"forcePolling": @YES}];
[socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
NSLog(@"socket connected");
}];
[socket onAny:^(SocketAnyEvent *event) {
NSLog(@"On any event :%@",event.event);
}];
[socket on:@"time" callback:^(NSArray* data, SocketAckEmitter* ack) {
NSLog(@"Time %@",data[0]);
}];
[socket connect];
haben Sie versucht auf in AndroidManifest.xml Datei? –
mryuso92
OP hat eine Lösung gefunden und in [this github issue] (https://github.com/socketio/socket.io-client-java/issues/327#issuecomment-232854670) veröffentlicht. – Keith
Ja, ich habe vergessen, bei StackOverflow zu aktualisieren. Habe nur die Antwort hinzugefügt. – partikles