2017/10/08

Android socket.io 教學


socket.io llibary 加入 gradle
    compile ('io.socket:socket.io-client:0.8.3') {
        exclude group: 'org.json', module: 'json'
    }
AndroidManifest 新增網路權限
< uses-permissionandroid:name="android.permission.INTERNET" / >
初始化 socket 物件
   private Socket mSocket;
   private  String Url = "https://socketio-chat.now.sh/";
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            mSocket = IO.socket(Url);  // 初始化 Socket
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
 }
設定監聽事件
mSocket.on(Socket.EVENT_CONNECT,onConnect);
mSocket.on(Socket.EVENT_DISCONNECT,onDisconnect);
mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError);
mSocket.on(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);
mSocket.on("login", onLogin);
mSocket.on("new message", onNewMessage);
mSocket.on("user joined", onUserJoined);
mSocket.on("user left", onUserLeft);
mSocket.on("typing", onTyping);
mSocket.on("stop typing", onStopTyping);
mSocket.on("login", onLogin);
mSocket.emit("add user", "123");
mSocket.connect();
舉例 onConnect  監聽事件
    private Emitter.Listener onConnect = new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            JSONObject data = (JSONObject) args[0];
            if(data != null){
                Log.e("onConnect","data= "+data);
            }
        }
    };
釋放 socket 資源

    @Override
    public void onDestroy() {
        super.onDestroy();
        mSocket.disconnect();
        mSocket.off(Socket.EVENT_CONNECT, onConnect);
        mSocket.off(Socket.EVENT_DISCONNECT, onDisconnect);
        mSocket.off(Socket.EVENT_CONNECT_ERROR, onConnectError);
        mSocket.off(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);
        mSocket.off("new message", onNewMessage);
        mSocket.off("user joined", onUserJoined);
        mSocket.off("user left", onUserLeft);
        mSocket.off("typing", onTyping);
        mSocket.off("stop typing", onStopTyping);
        mSocket.off("login", onLogin);
    }


沒有留言:

張貼留言

Android socket.io 教學

socket.io llibary 加入 gradle compile ( 'io.socket:socket.io-client:0.8.3' ) { exclude group: 'org.json' , mo...