signalr_socket
一个用于 Android、iOS、macOS 和 Web 的 aspx.net SignalR 客户端 Flutter 插件
入门
注意:此库不兼容 ASP.NET Core SignalR
添加依赖
dependencies:
signalr_socket: ^1.0.8 #latest version
初始化 SignalR Socket 并连接到服务器。
SignalrSocket signalrSocket = SignalrSocket(
url: 'https://signalr.socket.com',
hubName: 'hubName',
eventName: 'eventName',
queryString: {'key': 'value'},
updateConnectionStatus: (status) {
debugPrint("signalr socket update connection status ${status.name}");
},
newMessage: (message) {
debugPrint("signalr socket new message $message");
},
);
signalrSocket.connect();
Android 设置
- 为 Android 的发布模式添加混淆规则
- 在您的 Android 项目中创建一个新文件:android/app/proguard-rules.pro
- 将以下行添加到 proguard-rules.pro
-keep class com.github.signalr4j.client.hubs.HubResult { *; }
-keep class com.github.signalr4j.client.hubs.HubInvocation { *; }
-keep class com.github.signalr4j.client.hubs.HubProxy$* { *; }
-keep class com.github.signalr4j.client.hubs.HubConnection {*;}
如果您想要一个 HTTP URL,那么您需要将以下行添加到您的 Android 项目的 manifest 中。
<application
android:usesCleartextTraffic="true">
</application>
Web 设置
- 将一些 js 文件添加到您的 Web 项目的 ‘web/signalR_js’ 文件夹中
- 在此处下载javascript文件 https://github.com/ARASHz4/flutter_signalR_js/archive/refs/tags/1.0.0.zip
- 将 ‘jquery.min.js’、‘signalr.js’ 和 ‘socketConnection.js’ 这 3 个文件添加到 ‘web/signalR_js’ 文件夹中
- 进入 ‘web/index.html’ 并在 header 中添加以下行
<head>
<!--other lines-->
<script defer type="application/javascript" src="signalR_js/jquery.min.js"></script>
<script defer type="application/javascript" src="signalR_js/signalr.js"></script>
</head>
- 并在 body 中添加以下行
<body>
<!--other lines-->
<script defer type="application/javascript" src="signalR_js/socketConnection.js"></script>
</body>