【问题标题】:Why does WebSockets only work with websocket.org为什么 WebSockets 只适用于 websocket.org
【发布时间】: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 WebSocketO'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


【解决方案1】:

您的服务器端必须准备好接受 WebSocket 连接。

在 PHP 中,您可以为此使用 Ratchet。您可以在这里找到基本教程:http://socketo.me/docs/hello-world

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 2013-01-05
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多