Всем привет.
Есть самописный сервер webscoket на php, в связке http ws работает все отлично.
Но через само подписанный сертификат ошибка failed: Error in connection establishment: net::ERR_CONNECTION_RESET.
Функция stream_socket_accept($socket) возвращает false. Код server.php
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'local_cert', '/etc/ssl/private/server.key');
stream_context_set_option($context, 'ssl', 'local_cert', '/etc/ssl/certs/server.pem');
stream_context_set_option($context, 'ssl', 'passphrase','');
stream_context_set_option($context, 'ssl', 'allow_self_signe', true);
$socket = stream_socket_server("ssl://192.168.43.168:8078",$errno,$errstr,STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);
if (!$socket) {
die("$errstr ($errno)\n");
}
$read[] = $socket;
$db = new dbquery();
global $jsdata;
$authClient = array();
$write = $except = null;
while(true)
{
$read[] = $socket;
stream_select($read, $write, $except,1, 0);
if (in_array($socket, $read))
{
try {
$newSocket = stream_socket_accept($socket);
} catch (Exception $e) {
}
client.js
var uri ="wss://192.168.43.168:8078?id="+$('#iduser').val();
var socket = new WebSocket(uri);
У вас опечатка в опции allow_self_signed:
stream_context_set_option($context, 'ssl', 'allow_self_signe', true);
Подключил сертификат подписанный центром сертификации. Все заработало. Нужно только создать pem ключ сервера
cat server.crt server.key > server.pem
Ну и не забывать везде указывать доменное имя
wss:\\domain-name:8078
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Создал класс, внутри класса переменную $dbh и присвоил ему PDOДалее обращаюсь к $this->dbh-> и надеюсь на автокомплит, но редактор не видит методов