【问题标题】:How to Use Sockets in JavaScript\HTML? [closed]如何在 JavaScript\HTML 中使用套接字? [关闭]
【发布时间】:2010-12-16 17:19:16
【问题描述】:

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

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

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

【问题讨论】:

  • 你想做什么?您要支持哪种浏览器?
  • 我假设您指的是 Web Sockets
  • 你的意思是 TCP 套接字吗?

标签: javascript html websocket


【解决方案1】:

如何在 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 服务器的脚本界面执行的操作。但是它是relatively simple protocol;我点头的基于 Python SocketServer 的端点只有几页代码。

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

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

除非你真的需要低延迟的双向通信,否则你最好暂时使用XMLHttpRequest

【讨论】:

  • html5 支持哪些类型的 WS 绑定?
  • 如果您的意思是 WebSocket 对象在浏览器中会是什么样子,还有待观察,但规范 (w3.org/TR/websockets) 最近并没有太大变化。如果通过 WS Bindings 你在谈论 Web 服务,那么没有:WebSocket 不会谈论 SOAP 或任何其他预先存在的协议。
  • 你说“在 JS 或 HTML 中没有使用通用套接字的工具。这将是一场安全灾难,对一个人来说。”但是 phonegap 或 phonegap 相关的应用程序呢?标准浏览器不仅需要 HTML+js。
【解决方案2】:

规格:

文章:

教程:

图书馆:

【讨论】:

  • 更新:bobince在本页提供了一个简单的教程:P
  • 是的,该用户可能是 Kaazing 自己的 Jonas Jacobi。经常在任何提到 WebSocket 的地方弹出!我不太了解 Kaazing TBH,它坐在 websocket.org 上宣传似乎是一个整体的、非实际免费的客户端和服务器解决方案,它支持 WebSocket 似乎只是它实际功能的一小部分。我不知道,这可能是一个很好的解决方案,但我对营销并不完全满意。 [编辑,因此在okw的回复之后]
【解决方案3】:

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

【讨论】:

  • 好的。已经快6年了。标准变了吗?
猜你喜欢
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
相关资源
最近更新 更多