连接到HTML5 Websocket

我对HTML5 Websockets有点困惑。 我看了很多教程,其中有很多不同的连接使用不同的端口。 这些端口是什么意思?

例如Adobe使用这个:

new WebSocket('ws://localhost:1740');

然后另一个教程有这个不需要端口的地方:

new WebSocket("ws://www.websockets.org");

最后第三个教程有一个端口,但它完全不同:

new WebSocket("ws://localhost:8080/echo");

我的问题是,为什么这些会有所不同? 我如何知道连接到哪个端口? 另外,我试图做我自己的连接:

var ws = new WebSocket("ws://test.ontarget-network.com/");

但我得到以下错误: Unexpected response code: 200

我已经测试过,并尝试连接到各种其他“端口”(不知道我在做什么,显然,键入随机数),这个错误将消失,但是,我的代码

ws.onopen = function(){
   alert("Connection Established");
};

不会执行。

我试图完全理解HTML5的Websockets API,所以我可以尝试并创建更多动态应用程序。 谢谢您的帮助。


以下来自最新的WebSocket草案:

默认情况下,WebSocket协议使用端口80进行常规WebSocket连接,使用端口443进行通过TLS隧道传输的WebSocket连接[RFC2818]。

实际上,你应该能够使用任何有效的端口不被使用。 只要客户端试图连接到服务器端脚本为套接字连接打开的端口,您应该没问题。

关于港口的简要说明:
- 端口80是HTTP端口。
- 端口8080是备用HTTP端口。
- 端口443是HTTPS(即带有TLS的HTTP)端口。
- Adob​​e代码中的1740端口看起来像一些其他服务尚未使用的随机端口。

有关预设端口的完整列表,请参阅以下内容:
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

至于你的“意外的响应代码:200”错误,我猜测你在客户端使用的WebSocket URL没有指向有效的服务器端脚本,但是如果没有更多的信息就很难评论。


服务器应该有一个接受WebSocket连接的端点。 所以,如果这个端点是/echo你想连接到:

ws://localhost:8080/echo/websocket

如果在端点之后排除/websocket后缀,将会得到Unexpected response code: 200错误。 我有同样的困惑,这个链接为我澄清了一些事情。


我有同样的问题,但为了生存

Unexpected response code: 200

您需要使用服务器端脚本来处理Web套接字,或者您可以使用Node.js来构建您的服务器脚本。 为了教育的缘故,您可以尝试使用自己的websocket sever脚本。

链接地址: http://www.djcxy.com/p/44699.html

上一篇: Connecting to HTML5 Websocket

下一篇: Recommendation for converting from Qt app to Web app