Android上使用socket.io的Android上的WebSockets

Sum*_*iya 4 android websocket socket.io android-webservice

我希望利用我的NodeJS + SocketIO服务器应用程序和新的基于Android的客户端应用程序.目前我在Android中使用okhttp3 for Websockets.但我想在socket.io中使用WebSockets.

有没有其他人使用WebSocket对SocketIO进行此类工作.所以请帮助我.

Ale*_*xTa 6

只需将以下依赖项添加到您的Android build.gradle文件:

compile('io.socket:socket.io-client:x.x.x') { //replace x.x.x by 0.8.3 or newer version
    exclude group: 'org.json', module: 'json'
}
Run Code Online (Sandbox Code Playgroud)

它完全适用于0.8.3版本的Node.js + Socket.io .

套接字singleton类:

public class Socket {
    private static final String TAG = Socket.class.getSimpleName();
    private static final String SOCKET_URI = "your_domain";
    private static final String SOCKET_PATH = "/your_path";
    private static final String[] TRANSPORTS = {
        "websocket"
    };
    private static io.socket.client.Socket instance;

    /**
     * @return socket instance
     */
    public static io.socket.client.Socket getInstance() {
        if (instance == null) {
            try {
                final IO.Options options = new IO.Options();
                options.path = SOCKET_PATH;
                options.transports = TRANSPORTS;
                instance = IO.socket(SOCKET_URI, options);
            } catch (final URISyntaxException e) {
                Log.e(TAG, e.toString());
            }
        }
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本用法,onConnect事件:

Socket socket = Socket.getInstance();

private Emitter.Listener onConnect = new Emitter.Listener() {
    @Override
    public void call(final Object... args) {
        //Socket on connect callback
    }
};
socket.on("connect", onConnect);
socket.connect();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问开发人员Github 页面.