c# - 使用 WebSocket 在 Java 和 C# 桌面应用程序之间进行通信?

标签 c# java websocket signalr xsockets.net

我有兴趣将服务器作为 C# Web 应用程序部署到 GoDaddy,然后让用 C# 和 Java 开发的桌面客户端能够使用 WebSocket (RFC 6455) 订阅/发布到服务器。

我正在查看的 WebSocket 支持的库是 XSockets.NetSignalR .

我无法找到任何有关在 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/

相关文章:

c# - 在不使用 Excel.Interop 的情况下在 Excel 上编写和执行 VBA 宏

c# - Datagrid MVVM WPF中的复选框

c# - 如何在 asp.net 中使用日期和整数作为发票号

c# - 从 Team Foundation Server 获取构建和变更集编号

java - 为什么在我的项目构建中找不到我的 jar 文件和 .war 文件? maven

java - 与 ^.*(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&]).*$ 匹配的单词

python - WebSocket 连接到自签名服务器

Java 邮件附件在 Tomcat 上不起作用

java - (java) 使用 HtmlUnit 监听 websocket 消息

javascript - 错误设置 wss 服务器 : works on localhost, 但不是 IP 地址