.Net WebSockets in windows Services

本文关键字:Services windows in WebSockets Net | 更新日期: 2023-09-27 17:56:42

我正在尝试使用Web套接字来允许不同机器上的两个Windows服务来回传递数据。我找到的几乎所有示例或信息都是关于使用 Web 套接字进行客户端/服务器端通信的。我无法弄清楚如何设置它。我考虑过使用 WebSocketHost 作为 Microsoft.ServiceModel.WebSockets 的一部分,但后来我不确定如何将其绑定到本地端口而不是 URL。

有人有什么建议吗

谢谢

.Net WebSockets in windows Services

我正在尝试使用 Web 套接字来允许不同机器上的两个 Windows 服务来回传递数据。

您可以像您找到的那样使用 WebSocket 在两台计算机上打开套接字。这些示例提到了客户端和服务器,因为这是典型的用法,但是 API 真的不在乎。只要每一方都有一个监听者和一个发送者,他们就可以进行通信。

但是,我想提一下,这并不像听起来那么简单,因为两台机器并不总是可用的。有时一个或另一个很忙,或者网络被阻止或发生其他事情,或者听众太忙而无法立即响应,所以你最终需要双方的某种排队。

如果你正在做一个基于流程的操作,其中一方告诉另一方"我想要X",这是一个像生成文档这样的大操作,我发现在数据库中构建一个队列并将请求扔进去,然后等待另一方更新记录说它已经完成。

如果它们是更小、更快的请求,MSMQ 将更合适(如果有)。

但是,回到您最初的问题,如果您想使用它,任何客户端-服务器示例都应该可以正常工作。API 不在乎。

您可以使用 SignalR 自托管,您真的不想创建自己的 WebSockets 框架,因为这需要很长时间。以下是有关如何在Windows服务中启动OWIN服务器的链接。在 Windows 服务中使用 OWIN 托管 WebAPI以及如何在自主机中设置 signalR教程:SignalR 自承载

您可以使用内存映射文件完成此操作。

与内存映射文件的进程间通信