развернул на сервере, это был самый жесткий секс за всю мою жизнь в течение суток :), какие ошибки только не возникали и 1006 и отусутствие библиотеки HTPP и с консоли не верная версия php запускалась и много чего , но своего доиблся , автору спасибо за видео !)
Автор, спасибо тебе огромное!
Все доступно и понятно
Лучший из лучших!
О Богм мой))), как все все круто и нет никаких АЖАКС
Подскажите пж, как пофиксить проблему с кириллицей в логах чата? Кодировка везде UTF-8, думаю в этом как-то замешан JSON.stringify
долго искал видео про php сокеты! продолжайте эту тему
Все понятно, спасибо!. Но уже дни на пролет в поисках, подскажите пожалуйста, как это все вынести на рабочем хостинге? Что бы можно было получать такое же без запуска на локалке чат-сервер.пхп . Или это не возможно, т.к. уже потратил много времени, но не понял преимуществ этого подхода для реального рабочего сайта на веб сервере
Sergey, сделал на коленке получилось так:
- взял на vscale.io сервер LAMP на Ubuntu 20.04 6bit (дешевый тариф на этом сервисе)
- установил WinSCP для заливки кода (в идеале нужно через git)
- локально на OSPanel установил через composer Ratchet и написал скрипты из доков
- через залил результат через WinSCP (указав логин и пароль к Ubuntu на сервере) в /var/www/html (по-хорошему, нужно локальное содержимое поместить в www, а index.html и char-server.php в html)
- запустил в консоли сервера php char-server.php
- в браузере открыл html-страницу и увидел в консоли сообщение о соединении
>>не понял преимуществ этого подхода для реального рабочего сайта на веб сервере
для реального сайта можно сделать чат с диспетчером или указывать в режиме реального времени состояния и статусы пользователей сайте. Тут Ratchet делает то, что может делать Node.js.
А можно ли настроить Ratchet что бы он принимал данные с bridge modem, который бы перенаправлял данные XML с com порта на порт сокет сервера?
Помогите плиз найти решение)
Можно ли с рачета постучаться по wss на другой сокет-сервер, чтоб получить данные ?
Стоит задача, на сервере получить данные с другого сервера по сокетам и отдать клиенту. Я думал, что рачет мне в этом поможет, но не нашёл у них в документации описания такой возможности.
Может Вы сталкивались с такой задачей и знаете как её можно решить ? 🙂
Пока на ум приходит - юзать нативные сокеты на php , но может есть уже готовое решение с обработкой ошибок и доп возможностями ? 🙂
Спасибо 🙂
А почему веб сокет не работает на телефоне?И как сделать,чтобы работало
Два вопроса:
1) Как обеспечить работу через wss? почему-то на сайте у которого стоит https не устанавливает соединение, а на обычном http все работает.
2) Как сделать в ISP manager чтобы чат сервер работал постоянно поставить CRON на запуск каждую минуту или как?
1. Для wss обычно используется порт 443 (tools.ietf.org/html/rfc6455#page-55)
2. Не работал с ISP. Cron на каждую минуту не стоит делать. Если скрипт будет крутиться постоянно, надо запускать один раз. Потом проверять при запуске не запущен ли уже. Пока предложений нет
Но Websocket на PHP не будет работать на обычном веб-хостинге, верно?
Думаю смотря на каком; если получится проверять находится ли он в работе и разобраться с его автоматическим запуском, то будет. Хлопот будет много.
htmllab автозапуск можно сделать через SSH или в крайнем случае cron, но на хостинге думаю нельзя сделать чтобы бесконечно работал скрипт
нехилый басс, тебе тазы качать своим голосом нужно)
А как отправить сообщение определённому клиенту если их несколько? Я хочу получить как то определённое соединение
Подскажите, я открыл доступ из вне в OpenServer, и могу перейти по своему IP, то есть сайт работает, но вот прикол в том, что соединение не установлено написано. У меня прописано так: var socket = new WebSocket("ws://127.0.0.1:8080"); и даже если я заменю на IP свой, то ничего не работает. То есть работает только локально. Что делать? )
Владимир, открытие опенсервера миру не хорошая идея. По сокетам надо посмотреть, мб нет правила в брандмауэре?
А какое должно быть правило? На сколько я знаю, его можно только вкл. и выкл.
А какое должно быть правило? На сколько я знаю, его можно только вкл. и выкл. Что мне прописать в пути? localhost или свой IP ?
Для работы любого серверного софта нужно пробросить необходимые софту порты на роутере. В вашем случае 80 и 443 порт для вебсервера, и 8080 для Сокет сервера
классные уроки, все работает, но хотелось бы глянуть как использовать БД, и залить этот проект на хостинг с дальнейшими настройками (для автоматического запуска сокета)
P.S. так и не нашел на ютубе или гугле, где бы это было сделано в качестве примера
Не могу понять ! Я указал 8080 и он выдал разрыв соединения ! Код ошибки 1006! Что делать я не могу понять?
Здравствуйте, интересный урок, все работает если брать те материалы(composer.phar, и composer.json) что на видео, но если работать с последними версиями то увы при запуске chat-server.php пишет Fatal error: Uncaught Error: Class 'MyApp\Chat' not found in F:\xampp\htdocs\chat\bin\chat-server.php:12 Stack trace: #0 {main} thrown in F:\xampp\htdocs\chat\bin\chat-server.php on line 12
Проверил на PHP 7.0.25-1+ubuntu14.04+Ratchet ^0.4 на c9.io - все работает нормально.
дело не в PHP, на Ratchet ^0.3 и psr-0 у меня тоже работает, если делать на Ratchet ^0.4 и psr-4, но вылазит ошибка описана выше
Проверил, Ratchet ^0.4 и psr-4 - все работает. Покажите ваши .php файлы (pastebin или c9) + скрин проводника с расположением этих файлов
pastebin.com/u/cpaka здесь некоторые php, ничего нового, все как в уроке, там и ссылки на скриншоты в html файлах
у вас в chat-server.php написано "use MyAdpp\Chat;";
можете в том же файле распечатать и сказать, что будет показывать echo dirname(__DIR__) . '/vendor/autoload.php' ?
Есть какой-то вариант как сделать чат с добавлением данных в свою базу и их выводом. Например, если в базе что-то изменилось, то вывести это пользователю.
скажите, а если я хочу сделать диалоги как в ВК примеру я могу в php скрипте добить добавление в базу? И как организовать вывод? простым foreach? Подскажите плез
Ограничивает количество выбираемых записей из базы. Плохая идея загрузить все сообщения для одного диалога - их может быть много
Шикарное видео. Вопрос - а если у меня есть приложение на фреймворке Slim? Есть к примеру комментарии к статье. Я могу параллельно запустить работу вебсокета? Задача немного другая - надо отдавать всем клиентам когда в базу добавлен коммент на эту страницу. Это намного сложнее сделать?
После вставки в базу, отправляете сообщение в рассылку. Не должно быть сложно.
Сделал все как на видео, пишет ошибку в консоли что не может найти класс Chat
Спасибо большое! Помогло!!! чуть-чуть подробние можно было бы. а так все хоршо!
Почему мы должны запускать наш чат-сервер если он уже на работающем Open Server?
Пока мы не запустим скрипт, он не заработает. Даже если сама сборка запущена.
Кто может подсказать соединения как-то закрыто
код: 1006 причина:
Копировать документацию научился, молодец, лучше б показал как это заупустить на обычном хостинге, толку от локалки!
ну да, так то все умные, чтобы доки почитать, а чтобы связатся с админами хоста, так сразу покажи. Не кажется ли вам Ямба странным, что данное видео скорее направоено на ознакомление с технологией, нежели с несущественными, как в данном случае вещами?
мне кажется если снимать видео то нужно чтото от себя добавлять а не делать все как написано.
Пздц ты умный), спасибо за видео)
Смотрю проблема не только у меня. При подключении выскакивает:
соединения как-то закрыто
код: 1006 причина:
В интернете ответа не нашел, кто знает как решить?
Короче у меня заработало когда изменил порт с 8080, на какой-либо другой, например 9090. Как я понял, связано с тем, что этот порт просто уже занят другой программой.
микро поменяй
Кто может подсказать соединения как-то закрыто
код: 1006 причина:
Аналогичная ситуация, но у меня на самописном сервере. Пробовал и stream_*, пробовал и socket_*, но всё одно и тоже - 1006 ошибка!
Я построчно оба своих решения отслеживал и нашёл следующее:
Всё "ломается" на стадии формирования "рукопожатия". Соединение проходит на стороне сервера удачно, имеется возможность посмотреть ID нового соединения, получить ip и порт нового клиента, но когда приходит время получить заголовки, чтобы на их основе составить ответ клиенту, то тут происходит фиг знает что и по итогу в браузер возвращается 1006 ошибка.
Фиг знает что заключается в следующем:
При построчном, да и вообще при чтении с клиента получаю пустые строки или очень редко вообще абру-кадабру в кодировке ASCII. Пустые строки тоже в этой кодировке. Соответственно на пустых строках заголовка клиента невозможно составить заголовок ответа с хешем и т.д.
Такая ситуация наблюдается что на OpenServer'е, что на VPS.
Вот решил попробовать стороннюю библиотеку, а вдруг получится(?)
У вас проблема решилась? Если да, то как?
Буду признателен за информацию!
Всем привет! Так-же падало соединение. В моем случае оказалось все достаточно просто. Порт 8080 уже использовался другим приложением. Изменил порт, в файлах chat-server.php и в JSe index.php, на 8082 и пошло нормальное соединение
Огромное Вам спасибо! Похоже это единственное видео, где нормально все объясняется. Все предельно понятно!