PHP: не удается подключиться к Франциеву - PullRequest
0 голосов
/ 22 октября 2018

Я занимаюсь разработкой простого группового чата с использованием websocket на xampp 7.0.9 в Windows.Вот мой код:

run-server.php

<?php
require_once __DIR__ . "/vendor/autoload.php";

$DS = new Fr\DiffSocket(array(
   "server" => array(
   "host" => "127.0.0.1",
   "port" => "8000"
   )
));
$DS->addService("hello", __DIR__ . "/Hello.php");
$DS->run();

index.php

<html>
<body>
    <script src="http://lab.subinsb.com/projects/jquery/core/jquery-2.1.1.js"></script>
    <script>
        $(document).ready(function(){
            window.ws = new WebSocket("ws://127.0.0.1:8000/?service=hello");
        });
    </script>
</body>

Hello.php

<?php
namespace Fr\DiffSocket\Service;

use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class Hello implements MessageComponentInterface {

  public function onOpen(ConnectionInterface $conn){
    echo "New Connection - " . $conn->resourceId;
  }

  public function onClose(ConnectionInterface $conn){}
  public function onError(ConnectionInterface $conn, $error){}

  public function onMessage(ConnectionInterface $conn, $message){
    $conn->send("Hello");
  }

}
?>

run-server.php запускается нормально, но когда я подключаюсь с помощью index.php, я получаю следующую ошибку JavaScript:

(index):6 WebSocket connection to 'ws://127.0.0.1:8000/?service=hello' failed: Connection closed before receiving a handshake response

И это в run-server.php

Сервер запущен 127.0.0.1:8000 Примечание: неопределенное свойство: stdClass :: $ request в E: \ Projects \ Installed \ xmpp \ htdocs \ soc \ server \ vendor \ francium \ diffsocket \ src \ DiffSocket\ Server.php в строке 80

Неустранимая ошибка: необученная ошибка: вызов функции-члена getQuery () для null в E: \ Projects \ Installed \ xmpp \ htdocs \ soc \ server \ vendor \ francium \ diffsocket\ src \ DiffSocket \ Server.php: 80 Трассировка стека: # 0 E: \ Projects \ Installed \ xmpp \ htdocs \ soc \ server \ vendor \ francium \ diffsocket \ src \ DiffSocket \ Server.php (25): Fr \ DiffSocket\ Server-> getService (Object (Ratchet \ WebSocket \ WsConnection)) # 1 E: \ Projects \ Installed \ xmpp \ htdocs \ soc \ server \ vendor \ cboden \ ratchet \ src \ Ratchet \ WebSocket \ WsServer.php (142): Fr \ DiffSocket \ Server-> onOpen (Object (Ratchet \ WebSocket \ WsConnection)) # 2 E: \ Projects \ Installed \ xmpp \ htdocs \ soc \ server \ vendor \ cboden \ ratchet \ src \ Ratchet \ Http \ HttpServer.php (51): Ratchet \ WebSocket \ WsServer-> onOpen (Объект (Ratchet \ Server \ IoConnection), Объект (GuzzleHttp \ Psr7 \ Запрос)) # 3 E: \ Проекты \ Установлено \ xmpp \ htdocs \ soc \ server \ vendor \ cboden \храповик \ src \ Ratchet \ Server \ IoServer.php (112): храповик \ Http \ HttpServer-> onMessage (объект (храповик \ Server \ IoConnection), 'GET /? service = h ...') # 4 E: \Проекты \ Установленные \ xmpp \ htdocs \ soc \ server \ vendor \ cboden \ ratchet \ src в E: \ Проекты \ Установленные \ xmpp \ htdocs \ soc \ server \ vendor \ francium \ diffsocket \ src \ DiffSocket \ Server.php в режиме онлайн80

Может кто-нибудь помочь, пожалуйста.Спасибо.

...