随笔 - 245  文章 - 0  评论 - 11  阅读 - 50万

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

posted on   巫山老妖  阅读(2516)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示