Các thư viện cần có:
- Socket.IO-Client for Java-https://github.com/nkzawa/socket.io-client.java
- engine.io-client-0.4.1-https://github.com/nkzawa/engine.io-client.java
- Java-WebSocket-1.3.0-http://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket/1.3.0
- json-20140107 - http://mvnrepository.com/artifact/org.json/json/20140107
Để kết nối đến Nodejs sử dụng:
  private Socket mSocket;  
   {  
     try {  
       mSocket = IO.socket("http://chat.socket.io");  
     } catch (URISyntaxException e) {  
       throw new RuntimeException(e);  
     }  
   }  
Ở đây ta lắng nghe 2 sự kiện đó là khi connect thành công phía server và error:
  mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError);  
mSocket.on(Socket.EVENT_CONNECT, onConnectSucsses);  Socket.EVENT_CONNECT_ERROR là key cần lắng nghe.quy định trên server  private Emitter.Listener onConnectError = new Emitter.Listener() {  
     @Override  
     public void call(Object... args) {  
       getActivity().runOnUiThread(new Runnable() {  
         @Override  
         public void run() {  
           Toast.makeText(getActivity().getApplicationContext(),  
               R.string.error_connect, Toast.LENGTH_LONG).show();  
         }  
       });  
     }  
   };  
  private Emitter.Listener onConnectSucsses= new Emitter.Listener() {  
     @Override  
     public void call(Object... args) {  
       getActivity().runOnUiThread(new Runnable() {  
         @Override  
         public void run() {  
           Toast.makeText(getActivity().getApplicationContext(),  
               R.string.connect, Toast.LENGTH_LONG).show();  
         }  
       });  
     }  
   };  
Tiếp theo là gửi một message lên server ta sử dụng Socket.emit:
  mSocket.emit("new message", message);  
Value có thể là Object nguyên thủy(String,int,..) hoặc là một Object của bạn nhưng chú ý sử dụng JsonObject để gửi lên
Sau khi hoàn thành nhứ đóng kết nối và các sự kiện đang lắng nghe
 mSocket.disconnect();  
 mSocket.off(Socket.EVENT_CONNECT_ERROR, onConnectError);   
 mSocket.off(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);  
 mSocket.off("new message", onNewMessage);  
 
 
0 nhận xét:
Đăng nhận xét