zoukankan      html  css  js  c++  java
  • Android websocket使用

    源码地址

    gitHub地址 https://github.com/crossbario/autobahn-java

    支持wss和ws

    1、添加依赖:

    dependencies {
        implementation 'io.crossbar.autobahn:autobahn-android:18.5.1'
    }

    可能遇到的问题 1

    解决办法:(1)修改 minSdkVersion = 24
    解决办法:(2)AndroidManifest.xml 中添加 <uses-sdk tools:overrideLibrary="io.crossbar.autobahn"/>

    可能遇到的问题 2

    解决办法:

    在Android{ } 中加入了

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    2,简单使用介绍

    public class MyWebSocketManager {
     
        private volatile static MyWebSocketManager webSocketManager;
        private WebSocketConnection wsc;
     
        private MyWebSocketManager() {
        }
     
        public static MyWebSocketManager getInstance() {
            if (webSocketManager == null) {
                synchronized (MyWebSocketManager.class) {
                    if (webSocketManager == null) {
                        webSocketManager = new MyWebSocketManager();
                    }
                }
            }
            return webSocketManager;
        }
     
        public void connReceiveWebSocketData() {
            if (null == wsc) {
                wsc = new WebSocketConnection();
            }
            WebSocketOptions mWebSocketOptions = new WebSocketOptions();
            mWebSocketOptions.setMaxFramePayloadSize(1024 * 1024 * 2);
     
            //重连间隔
            mWebSocketOptions.setReconnectInterval(10000);
     
            try {
                wsc.connect( "wss://message.yunke.com/message.plan.ws", new WebSocketConnectionHandler() {
     
                    @Override
                    public void onOpen() {
                        //第一次建立连接要发送的参数
                        final String message = getJsonString();
                        if (wsc != null && message != null) {
                            try {
                                wsc.sendMessage(message);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    }
     
                    @Override
                    public void onMessage(final String payload) {
                    }
     
                    @Override
                    public void onClose(int code, String reason) {
                    }
     
                }, mWebSocketOptions);
     
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        private String getJsonString() {
            WebSocketParamsEnty mWebSocketParamsEnty = new WebSocketParamsEnty();
            Gson gson = new Gson();
            String message = gson.toJson(mWebSocketParamsEnty);
            return message;
        }
     
        /**
         * 关闭WebSocket
         */
        public void closeWebSocket() {
            if (wsc != null) {
                wsc.sendClose();
            }
        }
     
    }
    

    参考于:https://blog.csdn.net/qq_32671919/article/details/81221226

  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/12161664.html
Copyright © 2011-2022 走看看