Установить Web-socket server client
Я использую:
- Windows 10x64;
- OpenSrver.
Я выполнил:
- я скачал вручную архив https://github.com/arthurkushman/php-wss
- я распаковал архив;
- в OpenSrver я создал папку: phpWssArthurkushmanGithub2\ в папке c:\openserver\domains\;
Результат: c:\openserver\domains\phpWssArthurkushmanGithub2\;
- я вручную скопировал папку src в папку
c:\openserver\domains\phpWssArthurkushmanGithub2\;
Папка содержит c:\openserver\domains\phpWssArthurkushmanGithub2\src\
Components\
Contracts\
Exceptions\
WebSocketClient.php
WebSocketServer.php
- я открыл консоль OpenSrver;
- я ввёл команду: cd c:\openserver\domains\phpWssArthurkushmanGithub2\
- я ввёл команду: composer require arthurkushman/php-wss
- результат: в папку C:\OpenServer\domains\phpWssArthurkushmanGithub2 добавились папки и файлы
src\
vendor\
composer.json
composer.lock
Вопросы.
- Как создать и где разместить файл запуска сервера?
- Как создать и где разместить файл запуска клиента?
Ответы (1 шт):
Вы серьёзно?
В первом-же примере на github вас не смущают эти 2 строчки?
$websocketServer = new WebSocketServer(new ServerHandler(), $config);
$websocketServer->run();
Какой ещё WebServer если это Standalone скрипт?
Дополняю ответ
Вырезка из bash_history
cd PHP
mkdir wsServer
cd wsServer/
composer init
composer require arthurkushman/php-wss
cd src/
vim index.php
php index.php
~/PHP/wsServer/src $ cat index.php
<?php
require_once("../vendor/autoload.php");
use WSSC\Contracts\ConnectionContract;
use WSSC\Contracts\WebSocket;
use WSSC\Exceptions\WebSocketException;
use WSSC\WebSocketServer;
use WSSC\Components\ServerConfig;
class ServerHandler extends WebSocket
{
private $clients = [];
public function __construct()
{
}
public function onOpen(ConnectionContract $conn)
{
$this->clients[$conn->getUniqueSocketId()] = $conn;
echo('Connection opend, clients: ' . count($this->clients) . "\n");
}
public function onMessage(ConnectionContract $recv, $msg)
{
echo('Received message: ' . $msg . "\n");
$recv->send($msg);
}
public function onClose(ConnectionContract $conn)
{
unset($this->clients[$conn->getUniqueSocketId()]);
echo('close: ' . print_r($this->clients, 1) . "\n");
$conn->close();
}
public function onError(ConnectionContract $conn, WebSocketException $ex)
{
echo 'Error occured: ' . $ex->printStack();
}
public function onPing(ConnectionContract $conn, $msg)
{
// TODO: Implement onPing() method.
}
public function onPong(ConnectionContract $conn, $msg)
{
}
}
$config = new ServerConfig();
$config->setClientsPerFork(2500);
$config->setStreamSelectTimeout(2 * 3600);
$webSocketServer = new WebSocketServer(new ServerHandler(), $config);
Заходим на https://www.piesocket.com/websocket-tester
Набераем в адресе
ws://localhost:8000
Тестируем...
ps: Боже, вы меня в могилу сведете…






