Android中使用WebSocket实现单聊群聊(即时通讯)

一、创建(使用Java-WebSocket库):

  1.下载java-websocket.jar  

    下载地址:https://pan.baidu.com/s/1OzZcrInOlDsp7mX30v4WxQ  ( 提取密码 : 09j0 )

 2. 在我们项目的lib目录下添加这个java_websocket.jar包

二、使用 :

 其实要实现单聊,我们只需要掌握其中的一个类即可:

 

 1.初始化WebSocketClient

   第一个参数传入我们的服务端提供给我们的链接WebSocket的地址,

   第二个参数传入我们所使用的协议,在这里我们使用Draft_17协议:

private void connectService() {
            try {
                mWebSocketClient = new WebSocketClient(new URI(address),new Draft_17) {
                    //... 1.连接成功
                    @Override
                    public void onOpen(ServerHandshake serverHandshake) {
                        Log.i("MSG", "连接成功");
                    }
                    //... 2.获取到服务器返回的消息
                    @Override
                    public void onMessage(final String s) {
                        //在这里切换到主线程 对服务器返回的消息进行处理
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                tvTip.setText("连接成功!,从服务器获取到的消息为:" + s);
                            }
                        });
                    }
                    //... 3.连接关闭,可以通过b来判断是客户端断开还是服务器断开
                    @Override
                    public void onClose(int i, String s, boolean b) {
                        Log.i("MSG", "连接关闭");
                    }
                    //... 4.连接错误(当服务器端连接崩溃时调用)
                    @Override
                    public void onError(Exception e) {
                        Log.i("error", e.getMessage().toString());
                    }
                };
                //在这里连接服务器
                connect();
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
        }

 (其中在OnClose断开连接的方法中,我们可以通过boolean类型的b来判定是客户端断开还是服务端断开)

  连接至服务器

//连接服务器
    private void connect() {
        new Thread() {
            @Override
            public void run() {
                mWebSocketClient.connect();
            }
        }.start();
    }

 发送消息至服务器

private void sendMsg(String msg) {
        mWebSocketClient.send(msg);
    }  

 断开连接

 private void closeConnect() {
        try {
            mWebSocketClient.close();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        finally {
            mWebSocketClient = null;
        }
    }

你可能感兴趣的:(Android高级)