Я занимаюсь разработкой простого группового чата с использованием 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
Может кто-нибудь помочь, пожалуйста.Спасибо.