我有兴趣将服务器作为 C# Web 应用程序部署到 GoDaddy,然后让用 C# 和 Java 开发的桌面客户端能够使用 WebSocket (RFC 6455) 订阅/发布到服务器。
我正在查看的 WebSocket 支持的库是 XSockets.Net和 SignalR .
我无法找到任何有关在 Java 中使用 XSockets.Net(不要与 XSocket.org 混淆)的信息。据我了解,XSockets 针对 MS .Net 框架和 Mono 环境。然而,看看 SignalR,还有 SignalA,它是一个基于 Java 的 Android SignalR 客户端。
大声思考...我知道有许多用于 Java 的 WebSocket 库,这表明如果我能够从 Java 应用程序向服务器发布消息(使用 WebSocket),那么我应该能够用 C# 读取并处理它,因为 WebSocket 协议(protocol)是一个标准。
到目前为止,我相信 SignalR 解决方案将满足我允许 C# 和 Java 应用程序在 Web 上通信的要求,但由于 SignalR 的传输要求,我的通信将不会使用 WebSockets。阅读 SignalR 要求,要激活 WebSockets 传输,我必须使用 Windows8+ 和 .Net Framework for 4.5+。 GoDaddy 不使用 Windows8 进行 Windows 托管,即使使用,那么我所有的客户也必须使用 Windows8,这不是保证。
所以问题是:除了使用 SignalR 和 XSockets.Net,如何让 C# 和 Java 桌面客户端通过 WebSocket 在网络上进行通信?
非常感谢任何帮助!
编辑: 我现在将考虑部署 C# XSockets.NET 服务器并拥有 C# XSockets.NET 客户端和 Java JWebSocket 客户端,因为 JWebSockets 和 XSockets 都支持 WebSocket RFC6455 协议(protocol)。如果这是一次成功的努力,我将在这里发布我的发现并结束这个问题。
最佳答案
您可以用任何语言实现 RFC6455 客户端并使用 XSockets。但请注意,XSockets 使用发布/订阅模式,您也必须实现该模式才能利用该平台。
好处是您实际上不必实现 RFC6455,因为您可以实现自定义(非 Websocket 协议(protocol))并在从桌面(或其他任何设备)进行通信时使用它。由于 XSockets 中的所有内容都是一个插件,因此您可以添加自定义协议(protocol),并且仍然可以与使用 RFC6455 的客户端进行通信,因为 XSockets 将提供跨协议(protocol)通信。
所以你需要实现的实际上只是java客户端中的发布/订阅功能。 目前可能没有任何 Java 客户端实现 IXSocketClient 接口(interface),并且在涉及多平台支持时我们关注的是 Mono 而不是 Java。
如果您决定编写自己的 Java 实现,我们将尽一切努力为您提供帮助。
注意:从下一个版本(不远)开始,将非常容易实现您的自定义协议(protocol)并从任何使用 TCP/IP 的设备进行连接
关于c# - 使用 WebSocket 在 Java 和 C# 桌面应用程序之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890674/