从javascript连接到C#服务器

时间:2015-11-02 10:26:46

标签: javascript sockets websocket

是否可以创建一个使用简单套接字而不是WebSocket连接到简单C#服务器的javascript程序。

你可以帮我拿样品。

3 个答案:

答案 0 :(得分:1)

没有标准方法可以从Web浏览器中运行的Javascript代码建立TCP连接。 (见@Johannes Hahn的回答)

要在客户端和服务器之间进行通信,请考虑使用Microsoft的SignalR库。它旨在允许在浏览器中运行的Javascript程序与C#服务器通信。 SignalR将使用websockets;但是,如果没有可以通过回退到其他传输装置来获得websockets,它将继续工作。如果您需要阻止它尝试使用websockets,您也可以指定传输。

  

SignalR连接以HTTP身份启动,然后提升为WebSocket连接(如果可用)。 WebSocket是SignalR的理想传输,因为它可以最有效地使用服务器内存,具有最低的延迟,并具有最基本的功能(例如客户端和服务器之间的全双工通信),但它也有最严格的要求:WebSocket要求服务器使用Windows Server 2012或Windows 8以及.NET Framework 4.5。如果不满足这些要求,SignalR将尝试使用其他传输来建立连接。

另外,请注意,如果您的Javascript 在网络浏览器中运行,则可以定期建立网络连接。例如,在Node.js上运行的Javascript应用程序。

答案 1 :(得分:0)

似乎至少Firefox应该知道socket,请参阅https://developer.mozilla.org/en-US/docs/Web/API/TCP_Socket_API。但是(取自同一来源)TCP或UDP套接字不属于任何标准,因此可能在其他浏览器中不受支持或完全不同。

答案 2 :(得分:0)

原则上没有。出于安全原因,浏览器仅允许一组有限的协议。 Chrome有一个套接字API,但这不是标准的 - https://developer.chrome.com/apps/sockets_tcp。有些解决方案使用WebSocket连接到服务器,然后服务器建立TCP套接字连接,例如, https://github.com/kanaka/websockifyhttp://artemyankov.com/tcp-client-for-browsers/,如果您无法将WebSocket直接添加到服务器,则可能需要检查这些内容。