如何在JavaScript \ HTML中使用套接字?

如何在JavaScript \ HTML中使用套接字?

可能会使用一些很酷的HTML5?

图书馆? 教程? 博客文章?

产品规格:

  • W3C – Web套接字API

文章:

  • HTML5 WebSocket和WebJneering
  • WebSocket既不是Web也不是Socket
  • networking套接字协议对于web初创公司意味着什么

教程:

  • HTML5 Rocks – WebSockets

图书馆:

如何在JavaScript / HTML中使用套接字?

在JS或HTML中没有使用通用套接字的function。 比如说,这将是一场安全灾难。

在HTML5中有WebSocket。 客户端是相当微不足道的:

 socket= new WebSocket('ws://www.example.com:8000/somesocket'); socket.onopen= function() { socket.send('hello'); }; socket.onmessage= function(s) { alert('got reply '+s); }; 

你将需要在服务器端的一个专门的套接字应用程序来采取连接,并与他们做一些事情; 这通常不是您通常从Web服务器的脚本界面执行的操作。 但是这是一个相对简单的协议 。 我的基于Python的基于SocketServer的端点只有几页代码。

无论如何,它并不存在。 JavaScript方面的规范和networking传输规范都没有被确定下来,也没有浏览器支持它。

但是,您可以在可用的位置使用Flash来为脚本提供回退,直到WebSocket广泛使用。 Gimite的web-socket- j就是这样一个免费的例子。 然而,你受到与Flash Sockets相同的限制,即你的服务器必须能够根据请求向套接字端口吐出一个跨域策略,而且你通常在代理/防火墙方面有困难。 (Flash套接字是直接制作的,对于没有直接公共IP访问权限的人,只能通过HTTP代理服务器出网,否则将无法工作。)

除非你真的需要低延迟的双向通信,否则你现在最好坚持使用XMLHttpRequest

我认为有必要提一下,现在这个问题已经超过1年了, Socket.IO已经出来了,现在似乎是在浏览器中使用套接字的主要方式; 据我所知,它也与Node.js兼容。