Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 01.12.2017
Сообщений: 2

WebSocket, код 200 - ошибка рукопожатия

16.03.2019, 14:47. Показов 2982. Ответов 5

Студворк — интернет-сервис помощи студентам
Установлен Ratchet (Composer)
Порт 8080 создан и открыт

Настроен Nginx:
Code
1
2
3
4
5
6
7
8
9
10
server {
 
location / {
proxy_pass [url]http://localhost:8080;[/url]
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
 
}
Chat.php и Chat-Server.php файлы из оф сайта Ratchet
Запускаю сервер командой php: /var/www/ratchet/bin/Chat-Server.php

На стороне клиента подключаюсь:
JavaScript
1
var socket = new WebSocket("wss://my_site/");
Ответ:
Code
1
2
3
4
5
6
7
8
9
10
11
12
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Wed, 13 Mar 2019 16:45:36 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=20
Pragma: no-cache
Server: nginx
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Powered-By: PHP/5.6.40
Запрос:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: Upgrade
Cookie: userID=1; PHPSESSID=51e6a1c4ce25860f5544fc431c57ff13
Host: fallen.kl.com.ua
Origin: [url]https://fallen.kl.com.ua[/url]
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: m6+f+BR1ZamCFmni78ellA==
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.79
Скажите, пожалуйста, в чем еще копаться?
Опускаются руки уже, месяц ничего не могу ничего сделать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2019, 14:47
Ответы с готовыми решениями:

Факториал и рукопожатия =)
При встрече 12 друзей обменялись рукопожатиями. Сколько всего произошло рукопожатий?? Я знаю, что задача решается при помощи формулы...

Ошибка в соединение WeBsocket
Доброго времени суток. Пытаюсь настроить вебсокетное соединение через node.js, но возникает ошибка. var server =...

Ошибка при компиляции либы WebSocket++
Доброго времени суток! Не могу построить пример из либы для работы с WebSockets - WebSocket++. Выдаёт ошибку при построении: ‘SHA1’...

5
0 / 0 / 0
Регистрация: 02.07.2017
Сообщений: 32
07.04.2019, 00:20
Цитата Сообщение от Victor94 Посмотреть сообщение
var socket = new WebSocket("wss://my_site/");
Если я не ошибаюсь не wss а ws будет вернее. И вообще где коды с файлов?
0
 Аватар для arava
340 / 135 / 70
Регистрация: 30.06.2014
Сообщений: 717
12.04.2019, 14:00
Victor94,
JavaScript
1
2
3
4
5
var socket = new WebSocket('ws://my_site:8080');
 
socket.onopen = function(e) {
    console.log("Connection established!");
};
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
13.04.2019, 08:53
Добавьте заголовок Upgrade

https://en.wikipedia.org/wiki/... _handshake
https://developer.mozilla.org/... _mechanism
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
24.10.2019, 01:26
Ratchet слишком монструозная библиотека. Тем более в PHP. Проще написать с нуля на пару килобайт, чем копаться в 4 мб кода, в зависимостях и привязках к 7-й версии языка. В своём коде не потеряешься. Просто оставил своё мнение ИМХО
0
 Аватар для if_undefined
0 / 0 / 0
Регистрация: 11.09.2020
Сообщений: 9
13.09.2020, 08:57
Использовать node.js +/or socket.io + клиентский, например:
HTML5
1
2
3
4
5
6
7
8
<!-- форма для отправки сообщений -->
<form name="publish">
  <input type="text" name="message">
  <input type="submit" value="Отправить">
</form>
 
<!-- здесь будут появляться входящие сообщения -->
<div id="subscribe"></div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создать подключение
var socket = new WebSocket("ws://localhost:8081");
 
// отправить сообщение из формы publish
document.forms.publish.onsubmit = function() {
  var outgoingMessage = this.message.value;
 
  socket.send(outgoingMessage);
  return false;
};
 
// обработчик входящих сообщений
socket.onmessage = function(event) {
  var incomingMessage = event.data;
  showMessage(incomingMessage);
};
 
// показать сообщение в div#subscribe
function showMessage(message) {
  var messageElem = document.createElement('div');
  messageElem.appendChild(document.createTextNode(message));
  document.getElementById('subscribe').appendChild(messageElem);
}
// но, полагаю, это для вас не новость?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2020, 08:57
Помогаю со студенческими работами здесь

WebSocket. Ошибка при создании подключения
Здравствуйте! У меня есть веб приложение - video chat. Работает при помощи WebSockets. Сразу скажу не я писал, скачал отсюда...

Редирект только если код 200
Здравствуйте. SEOшник поставил задачу сделать на сайте редирект с адресов без слеша на адреса со слешем. Плюс редирект с www на без www....

UMI Несуществующие страницы отдают код 200
Здравствуйте! При обращении к несуществующей странице сайта отдается код 200 и загружается главная страница с иероглифами. Например...

Удаленная страница выдает код ответа 200!
Здравствуйте, Подскажите пожалуйста кто сталкивался с такой проблемой, и как ее решили? Удаленная страница на сайте стала выдавать код...

Отдает код ответа 200 вместо 404
Не могу понять логику работы, что не так с Битриксом. Битрикс не отдает 404 ответ на несуществующие страницы. Пример: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru