ASP.NET Core 2.2.0-preview1 为 SignalR 引入了一个 Java 客户端,这个新客户的第一个预览现在已经可用。此客户端支持从 Java 代码(包括 Android 应用程序)连接到 ASP.NET Core SignalR 服务器。
Java 客户端的 API 与现有的 .NET 和 JavaScript 客户端的 API 非常相似,但有一些重要的区别需要注意。
使用 HubConnectionBuilder 类型以相同的方式初始化 HubConnection。
HubConnection hubConnection = new HubConnectionBuilder() .withUrl("www.example.com/myHub") .configureLogging(LogLevel.Information) .build();
就像在 .NET 客户端中一样,我们可以使用 send 方法发送调用。
hubConnection.send("Send", input);
可以使用 on 方法注册服务器调用的处理程序。这里的一个主要区别是必须将参数类型指定为形参,因为 Java 处理泛型的方式不同。
hubConnection.on("Send", (message) -> { // Your logic here }, String.class);
这是 Java 客户端的早期预览版本,因此有许多功能尚不支持,计划在 RTM 发布之前解决以下问题:
只有原始类型可以作为参数和返回类型接受。
API 是同步的。
此时仅支持“Send”调用类型,不支持“Invoke”和流返回值。
客户端当前不支持 Azure SignalR 服务。
仅支持 JSON 协议。
仅支持 WebSockets 传输。
详情见 发布公告 。
下载地址:https://github.com/aspnet/SignalR-samples