socket 即時通信

依賴:json

//socket
implementation ('io.socket:socket.io-client:1.0.0') {
    // excluding org.json which is provided by Android
    exclude group: 'org.json', module: 'json'
}

使用時:服務器

Socket socket;
try {
    socket = IO.socket(MyApp.baseSocketUrl));
    socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            Log.d(TAG, "call: socket已鏈接");
            LoginSocketBean loginSocketBean = new LoginSocketBean(myApp.getUser_id());
            Gson gson = new Gson();
            JSONObject jsonObject = null;
            try {
                jsonObject = new JSONObject(gson.toJson(loginSocketBean));
            } catch (JSONException e) {
                e.printStackTrace();
            }
            Log.d(TAG, "call: 進行登陸");
            socket.emit("user_login",jsonObject);
        }
    }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {

        @Override
        public void call(Object... args) {
            Log.d(TAG, "call: socket已斷開鏈接");
        }

    });
    socket.connect();
} catch (URISyntaxException e) {
    e.printStackTrace();
    Log.d(TAG, "onCreate: socket初始化失敗");
}

如上:網絡

一、使用emit函數向服務器發送數據(第一個參數表示事件的名稱,服務器以此做爲來判斷是那種事件,第二個參數是傳輸的數據),這裏我發送的是JSON格式的數據,也能夠直接發送字符串;socket

二、使用on函數對接收的數據進行監聽。ide

三、socket初始化後,使用connect函數進行鏈接,斷開網絡重連後socket會自動重連。函數

相關文章
相關標籤/搜索