【发布时间】:2014-01-20 08:34:05
【问题描述】:
我有兴趣将服务器作为 C# Web 应用程序部署到 GoDaddy,然后让用 C# 和 Java 开发的桌面客户端能够使用 WebSockets (RFC 6455) 订阅/发布到服务器。
我正在查看的支持 WebSocket 的库是 XSockets.Net 和 SignalR。
我找不到任何关于在 Java 中使用 XSockets.Net(不要与 XSocket.org 混淆)的信息。我了解 XSockets 以 MS .Net 框架和 Mono 环境为目标。但是,看看 SignalR,还有 SignalA,它是一个基于 Java 的 Android SignalR 客户端。
Thinking-out-loud...我知道有很多用于 Java 的 WebSocket 库,这表明如果我能够将消息(使用 WebSocket)从 Java 应用程序发布到服务器,那么我应该能够在 C# 中读取和处理它,因为 WebSocket 协议是一个标准。
到目前为止,我相信 SignalR 解决方案将满足我允许 C# 和 Java 应用程序在 Web 上通信的要求,但由于 SignalR 的传输要求,我的通信将不会使用 WebSockets。阅读 SignalR 要求,要激活 WebSockets 传输,我必须使用 Windows8+ 和 .Net Framework for 4.5+。 GoDaddy 不使用 Windows8 进行 Windows 托管,即使使用了,我的所有客户端也必须使用 Windows8,这不是保证。
所以问题是:除了使用 SignalR 和 XSockets.Net 之外,我如何让 C# 和 Java 桌面客户端通过 WebSockets 在网络上交谈?
非常感谢任何帮助!
编辑:我现在将研究部署一个 C# XSockets.NET 服务器并拥有一个 C# XSockets.NET 客户端和一个 Java JWebSocket 客户端,因为 JWebSockets 和 XSockets 都支持 WebSocket RFC6455 协议。如果这是成功的努力,我将在此处发布我的发现并关闭此问题。
【问题讨论】:
-
您说“由于传输要求,我的通信不会使用 WebSockets。”那么你问如何使用websockets?还是你试过了还是不行?
-
@rogerdpack:阅读 SignalR 要求,要激活 WebSockets 传输,我必须使用 Windows8+ 和 .Net Framework 4.5+。如果不满足系统要求,有一个备用机制将使用 WebSockets 以外的传输。
-
所以您在这里担心的是您不会拥有 Windows8+,因此您不能使用 SignalR,而您的问题是“如何使用其他东西与 c# 进行通信”?
-
@rogerdpack:没错,这就是为什么我研究了 XSockets.Net 但它似乎不支持 Java?我会更新我的问题以反映您的评论,谢谢!
-
由于您的字节将来自java“通过websocket”,您可以在两侧使用您想要的任何库,它不必相同(现在,用于编组字节这样你就可以发送一些有意义的东西,这是一个不同的故事......)
标签: c# java websocket signalr xsockets.net