是否可以创建一个javascript程序,使用简单的套接字而不是WebSocket连接到简单的C#服务器。
你能帮我拿个样品吗。
没有标准的方法可以通过在web浏览器中运行的Javascript代码建立TCP连接。(见@Johannes Hahn的回答)
要在客户端和服务器之间进行通信,请考虑Microsoft的SignalR库。它被设计为允许在浏览器中运行的Javascript程序与C#服务器通信。SignalR将使用websocket;但是,如果websocket由于回退到其他传输而不可用,它将继续工作。如果需要防止传输尝试使用websocket,也可以指定传输。
SignalR连接从HTTP开始,如果可用,则升级为WebSocket连接。WebSocket是SignalR的理想传输,因为它可以最有效地使用服务器内存,具有最低的延迟,并且具有最底层的功能(例如客户端和服务器之间的全双工通信),但它也有最严格的要求:WebSocket要求服务器使用Windows server 2012或Windows 8以及.NET Framework 4.5。如果不满足这些要求,SignalR将尝试使用其他传输进行连接。
此外,请注意,如果您的Javascript是而不是在web浏览器中运行,则可以进行常规网络连接。例如,在Node.js.
似乎至少Firefox应该知道套接字,请参阅https://developer.mozilla.org/en-US/docs/Web/API/TCP_Socket_API.但是(来自同一来源)TCP或UDP套接字不是任何标准的一部分,因此在其他浏览器中可能不受支持或完全不同。
原则上没有。出于安全原因,浏览器只允许有限的一组协议。Chrome有一个套接字API,但这不是标准的-https://developer.chrome.com/apps/sockets_tcp.有一些解决方案使用WebSocket连接到服务器,然后服务器建立TCP套接字连接,例如。https://github.com/kanaka/websockify,http://artemyankov.com/tcp-client-for-browsers/,因此,如果您不能将WebSocket直接添加到服务器,您可能需要查看这些。