Задать вопрос
@red-web

Как настроить сокеты (php) wokerman с ssl сертификатом через wss протокол?

Друзья неделя попыток разобраться в причине возникновения ошибки не увенчалась успехом. Пытаюсь настроить веб сокеты в стеке php+javascript с использованием фреймворка workerman.

server.php - Серверная часть выгладит так:
// Подключаем библиотеку Workerman
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$wsWorker = new Worker("websocket://45.84.226.248:8433");
$wsWorker->count=4;
$wsWorker->onConnect = function($connection){
	echo "new connection!\n";
};
$wsWorker->onMessage = function($connection, $data) use ($wsWorker){
	foreach($wsWorker->connections as $clientConnection)
	{
		$clientConnection->send($data);
	}
};
$wsWorker->onClose = function($connection){
	echo "Connection closed!\n";
};
Worker::runAll();


после подключения запускаю через консоль, все удачно запускается.

635813061414f300456771.jpeg

client.html - Клиентская часть:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <script>
        const ws = new WebSocket("wss://45.84.226.248:8433");
		ws.onmessage = function(evt) {alert(evt.data);};
    </script>
</head>
</html>


выводит ошибку:
WebSocket connection to 'wss://45.84.226.248:8433/' failed:

6358144e0b762729148533.jpeg

send.php - Отправка сообщения:
// соединяемся с локальным tcp-сервером
$instance = stream_socket_client("tcp://45.84.226.248:8433");
// отправляем сообщение
fwrite($instance, "test message \n");


в консоль не выводит сообщение, а только лишь
new connection
connection closed
как будто сразу рвет соединение.

6358151c355c0016283207.jpeg

Не знаю принято тут или нет, но готов заплатить даже за помощь в решении этой задачи.
Совсем завяз с этим вопросом.
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Средний 16 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы