依赖:
//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初始化失败"); }
如上:
1、使用emit函数向服务器发送数据(第一个参数表示事件的名称,服务器以此作为来判断是那种事件,第二个参数是传输的数据),这里我发送的是JSON格式的数据,也可以直接发送字符串;
2、使用on函数对接收的数据进行监听。
3、socket初始化后,使用connect函数进行连接,断开网络重连后socket会自动重连。