Kết nối nodejs trong Android

SocketIO là một giao thức websocket.
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);  
     }  
   }  
Để lắng nghe một sự kiện từ phía server ta có thể sử dụng Socket.on:
Ở đâ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);  
onConnectError và onConnectSucsses là hai callback được gọi khi kết nối socket:
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();  
         }  
       });  
     }  
   };  
Sau khi đã lắng nghe 2 sự kiện bạn sử dụng mSocket.connect(); để bắt đầu connect tới phía server
Tiếp theo là gửi một message lên server ta sử dụng Socket.emit:
  mSocket.emit("new message", message);  
Trong đó "new mesage" là key được lắng nghe phía server,message là value.
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