【发布时间】:2016-01-09 15:13:05
【问题描述】:
为什么 WebSockets 只能用于 websocket.org 而不能通过 localhost?我得到的只是来自 javascript 的未定义。 ws://websocket.org 有什么特别之处?
到 'ws://localhost/includes/php/UnitTest/WebSocketTest.php' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:200
我已经尝试了所有端口号ws://localhost:80/同样的问题
<script language="javascript" type="text/javascript">
var ws = new WebSocket("ws://127.0.0.1:80/includes/php/UnitTest/WebSocketTest.php");
ws.onopen = function() { alert("open");}
ws.onerror = function(e){alert(e.reason+ " " + e.code);}
</script>
我正在阅读两本书 The Definitive Guide to HTML5 WebSocket 和 O'Reilly WebSocket 没有人谈论或指出这个问题,我认为这都是标准的现在有东西了吗?
你能帮忙吗?
【问题讨论】:
-
这可能是因为您没有在 PHP 代码中正确处理 websocket。 HTTP 200 表示页面像普通网页一样返回,而不是返回 HTTP 101 以切换到 websocket。显示您用于处理连接的代码。
-
欣赏响应它只是 我认为它就像 XHR 一样,您可以在其中从 javascript omg 将内容发布到 php $_POST['stuff'] 现在得到“WebSocket connection to 'ws://localhost:8181/includes/php/UnitTest/WebSocketTest.php'失败:连接建立错误:net::ERR_CONNECTION_REFUSED 我错过了什么?
-
你错过了整个 websocket 的东西:D。 XHR 只是 JS 发出 HTTP 请求的能力。 WebSockets 是一种不同的通信机制,尽管它以 HTTP 连接开始。
标签: javascript php html websocket