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

IT技术 javascript html websocket
2021-01-15 09:50:28

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

可能正在使用一些很酷的 HTML5?

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

3个回答

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

无法在 JS 或 HTML 中使用通用套接字。对一个人来说,这将是一场安全灾难。

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 的 noddy 端点只有几页代码。

无论如何,它实际上并不存在。JavaScript 端规范和网络传输规范都没有确定下来,也没有浏览器支持它。

但是,您可以在可用的情况下使用 Flash 为您的脚本提供后备,直到 WebSocket 广泛可用。Gimite 的web-socket-js就是一个免费的例子。但是,您会受到与 Flash Sockets 相同的限制,即您的服务器必须能够根据对套接字端口的请求吐出跨域策略,并且您经常会遇到代理/防火墙的困难。(Flash 套接字是直接制作的;对于无法直接访问公共 IP 且只能通过 HTTP 代理离开网络的人来说,它们将不起作用。)

除非您确实需要低延迟的双向通信,否则最好暂时坚持使用XMLHttpRequest

html5 支持哪些类型的 WS 绑定?
2021-04-02 09:50:28
你说“没有设施可以在 JS 或 HTML 中使用通用套接字。对一个人来说,这将是一场安全灾难。” 但是 phonegap 或 phonegap 相关应用程序呢?HTML+js 不仅仅需要标准浏览器。
2021-04-03 09:50:28
如果您的意思是 WebSocket 对象在浏览器中的样子,那还有待观察,但规范 ( w3.org/TR/websockets ) 最近没有太大变化。如果通过 WS Bindings 您谈论的是 Web 服务,那么没有:WebSocket 不会谈论 SOAP 或任何其他预先存在的协议。
2021-04-04 09:50:28
更新:bobince在此页面上提供了一个简单的教程:P
2021-03-19 09:50:28
是的,该用户可能是 Kaazing 自己的 Jonas Jacobi。经常在任何提到 WebSocket 的地方弹出!我不太明白 Kaazing TBH,坐在 websocket.org 上宣传似乎是一个整体的但实际上不是免费的客户端和服务器解决方案,它具有 WebSocket 支持,但它似乎只是它实际工作的一小部分。我不知道,这可能是一个很好的解决方案,但我对营销并不完全满意。[已编辑,因此在 okw 回复后]
2021-03-21 09:50:28

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

行。已经快6年了。标准有变化吗?
2021-04-02 09:50:28