是否有可能创建一个 JavaScript 程序,通过简单的 socket 而不是 WebSocket 连接到一个简单的 C# 服务器。
你能帮我提供一个示例吗?
是否有可能创建一个 JavaScript 程序,通过简单的 socket 而不是 WebSocket 连接到一个简单的 C# 服务器。
你能帮我提供一个示例吗?
在 Web 浏览器中运行的 JavaScript 代码没有标准方法来建立 TCP 连接。(请参见 @Johannes Hahn 的答案)
要在客户端和服务器之间通信,请考虑使用微软的 SignalR 库。它旨在允许在浏览器中运行的 JavaScript 程序与 C# 服务器通信。SignalR 将使用 WebSockets;但是,如果 WebSockets 不可用,则会回退到其他传输方式继续工作。如果需要防止其尝试使用 WebSockets,则还可以指定传输方式。
SignalR 连接以 HTTP 开始,然后如果可用,就会升级为 WebSocket 连接。WebSocket 是 SignalR 的理想传输方式,因为它最有效地利用了服务器内存,具有最低的延迟,并且具有最多的基础功能(例如客户端和服务器之间的全双工通信),但它也有最严格的要求:WebSocket 要求服务器使用 Windows Server 2012 或 Windows 8 和 .NET Framework 4.5。如果不满足这些要求,则 SignalR 将尝试使用其他传输方式进行连接。
看起来至少 Firefox 应该知道 socket,参见 https://developer.mozilla.org/en-US/docs/Web/API/TCP_Socket_API。但是(来自同一源的)TCP 或 UDP sockets 不属于任何标准,因此在其他浏览器中可能不被支持或完全不同。