Android 通过SignalR与服务器交互

本文详细介绍如何在Android应用中使用SignalR实现与服务器的实时通信。从依赖引入到连接建立,再到消息的发送与接收,最后到断开连接,全过程步骤清晰。特别强调了最新版本的使用及常见问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过SignalR可以实现服务端和客户端的简单的消息接收发送,类似于推送!而且是免费的!

本章内容是记录SignalR的使用!

最低使用要求:ASP.NET Core 2.2 版本以后(含)

官方文档地址

本文就只介绍Android端如何使用了

1、引入依赖

implementation 'com.microsoft.signalr:signalr:3.0.0-preview8.19405.7'
//signalr日志打印(可选)
//implementation 'org.slf4j:slf4j-jdk14:1.7.25'

文档写的版本还是1.0.0,其实最新已经3.0.0了,推荐使用最新版,因为发现旧版有些无法连接!

查看版本历史

 

2、建立连接

//url 通信地址(后台给)
HubConnection hubConnection = HubConnectionBuilder.create(url).build();//初始化
hubConnection.start().blockingAwait();//进行连接

3、接收消息(一定要放在连接操作之前,也就是 hubConnection.start().blockingAwait()之前),不然无法接受到消息!

/**
 * 与服务器交互,接收服务器的消息
 * 务必放在连接之前,hubConnection.start().blockingAwait()方法之前,不然无效
 * ReceiveMsg   与服务器约定的方法
 * String.class 接收的类型,与服务器约定
 */
 hubConnection.on("ReceiveMsg", new Action1<String>() {
         @Override
         public void invoke(String message) {//子线程
                    //UI操作请切换到主线程,不然会出现不显示等问题
                    Message msg = new Message();
                    msg.obj = "接收到服务器消息:" + message;
                    msg.what = 0x123;
                    handler.sendMessage(msg);
                }
            }, String.class);

4、发送消息

/**
 * 与服务器交互,给服务器发消息
 * SendMsg 与服务器约定的方法
 * str1    与服务器约定的字段
 */
hubConnection.send("SendMsg", str1);
//hubConnection.send("SendMsg", str1, str2);//参数个数为不固定

5、断开连接

if (hubConnection != null) 
 hubConnection.stop();

到这里就结束了,其实就是简单地    连接、发送、接收 等操作!

问题汇总:

1、如果无法连接请尝试升级到最新版本

2、接收到服务器消息后,进行消息处理请务必在UI线程

3、接收消息操作请放在连接操作之前,不然接收方法无效

Demo下载(百度云盘)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值