【问题标题】:Web Socket between C# Console Application and a browserC# 控制台应用程序和浏览器之间的 Web 套接字
【发布时间】:2017-12-15 21:05:07
【问题描述】:

C# 控制台是否可以(并且简单)使用浏览器打开 Web 套接字,而不使用 Node.js?意思是,一个活跃且打开的 C# 控制台应用程序,始终运行在服务器上,可以实时向浏览器发送和接收消息。

我尝试使用浏览器加载 socket.io.js JS 文件 (https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js),并使用 TcpListener 类创建 C# 控制台应用程序。似乎有一个成功的连接。但是我无法在服务器和客户端之间发送消息。

【问题讨论】:

  • 是的,这是可能的,但是使用专用的 websocket 库而不是原始的 TcpListener。
  • 是的,您可以使用 RedHttpServer 或程序员提到的 SignalR。为此有许多不同的库,因此请使用其中之一而不是 TcpListener 类,因为您必须自己在其之上实现 WebSocket 协议。
  • 旁注:阅读您的问题似乎您正试图让 C# 应用程序打开与浏览器的连接。这是不可能的,因为 Websocket 要求浏览器打开与服务器的连接。您的 C# 应用程序绝对可以侦听 Websocket 连接,但它无法启动它们。我确定这就是您的实际意思,但是您写问题的方式有点令人困惑。

标签: c# node.js sockets websocket socket.io


【解决方案1】:

是的,我已经做过好几次了。

C# 控制台/Windows 服务:使用 SignalR 库。应该可以通过 NuGet 获取。

Web 应用程序:使用 jquery.signalr-x.x.x.js 库。

SignalR 应该主要在我们的 .NET 应用程序中的 SignalR 集线器和您的 Web 应用程序中的 jquery.signalr 客户端库之间建立 WebSocket 连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 2017-02-16
    相关资源
    最近更新 更多