#1 Laravel: Ratchet - WebSocket. Учимся работать с сокетами
Вставка
- Опубліковано 11 вер 2024
- Учимся работать с сокетами в Laravel.
Ratchet - WebSocket/ socketo.me/
✔ Группа проекта вк: simple_...
✔ Подписка на канал: goo.gl/BUR12H
✔ Сайт автора: simple-training...
Если что на декабрь 2021 библиотека еще поддерживается и урок актуален!
Sice jsem rozuměl asi každé třicáté slovo, ale i tak to opravdu pomohlo, díky!
Хоть видео и старое, но настолько простым языком объясняется материал, что сразу такое чувство "прорвало". и, наконец-то, ты способен понять то, что так долго не доходило к тебе. Спасибо!
В конце чуть подзапарился походу. Если клиент совершает покупку это и есть общение клиент-клиент. Очень годное видео - СПАСИБО, подписался!
Повторил за автором и все заработало.Различия: у меня Опенсервер и лара 5.2. Главное внимательность и будет счастье:) Спасибо Дмитрий!
Очень интересный урок - спасибо!
Побольше подобного в связке с Laravel!
Dmitry Afanasyev, ты гений! одно из самых полезных видео, которые я видел по PHP!
наверно уже полгода ищу подходящее решение по WebSockets - и вот оно
спасибо :)
+Nickola Shapoval
Скоро про сокет пуш сниму - вот там магия ))))))
Просто восторг! Больше о Laravel и интересных возможностях!!!))Пожалуйста!
Дмитрий, очередное офигенное видео как всегда!!! Жир, тебе пора семинары проводить, я б сходил, даже заплатил бы без проблем)) Так держать, классно шаришь!
Ждем следующее видео. Спасибо за полезный урок
Bratan ya iz Uzbekistane ochen kruta! Rahmat kattakon !
Единственное видео где все понятно ......
Спасибо вам огромное !!
Отличная тема! Видео качественное, приятно смотреть
Здравствуйте, Дмитрий!
Не могли бы вы сделать обзор на ReactPHP?
Hi Dmitry.
Very useful tutorial. I do not speak Russian but I could understand most part of the tutorial.
Could you provide a link with the files you created? BaseSocket.php and ChatSocket.php.
Thank you very much.
Спасибо! Очень познавательно и интересно! (:
Очень полезная информация. Большое спасибо!
Спасибо за видео. Была проблема на open server но на xammp php 8 laravel 8 работает
Сделайте пожалуйста уроки по основам ларавел: ioc, сервис провайдер, фасады и прочее . Как их использовать на практике
+Алмас Искаков Сделаю. Но это уже после базы по ларе. Что же касается именно сокетов 1) мало толковой инфы 2) столкнулся по работе. По этому решил снять видео вне очереди
+Dmitry Afanasyev Добрый день. А можно ли с помощью Ratchet сделать просто server который будет слушать и принимать данные именно по UDP протоколу и сохранять их, например, в бд. То есть сделать сервер на сокете, а не клиент клиент приложение.
Да, и как потом сокет прибить? Только в процессах системы?
Ну вроде все ок, но будут ли отрабатывать middleware, или любой не авторизованный пользователь может теоретически подключиться и получить данные?
Нигде не могу найти урок по работе Laravel в качестве клиента, нужно отправить запрос по вебсокетам и отработать ответ. Подскажите, плиз !
Ещё актуально?
Добрый день, Дмитрий.
А буду ли серия про Laravel:
- Service Providers;
- Service Container.
Спасибо.
А что насчет скорости и о количестве одновременных подключений? Проигрывает NodeJs + Socket.io?
Отличное этим летом как раз интересна была тема сокетов на пхп, но ничего адекватного не нашел, только нода везде
+Василий Серпокрыл Аналогично. Вариантов реализации много находил, но везде приходилось слишком много серверных настроек делать, либо использовать платные сервисы. А хотелось без лишних телодвижений и бесплатно - ratchet это позволяет сделать (правда для того чтобы реализовать push с сервера - таки придется кое что установить. Но это будет гораздо проще чем если бы использовать редис или ноду).
Dmitry Afanasyev вы в видео сказали что в следующем видео как раз будите показывать пуш с сервера, я правильно понял?
+Василий Серпокрыл Да, все верно. Устраним те минусы которые я описал в конце видео. Сделаем то что предлагают платные сервисы, но бесплатно. Постараюсь на этой неделе снять видео.
В конце ролика, не совсем понял почему нельзя отправить сообщение по сокет соединению, из выполняемого по расписанию кода. Почему нельзя обратится к этому классу, взять соответствующие clients и сделать send?
Спасибо =)
6:05 А почему надо перебирать в цикле всех клиентов для отправки сообщения, разве нет броадкаста и подписок в рачете?
Дмитрий, громадное спасибо за урок. Он для меня очень и очень актуален. А можно ли ссылку на исходники кода?
Благодарю. Исходники не сохранились.
Привет из далекого будущего - Laravel5.6, с небольшими изменениями все работает. А зачем магическое - class ChatSocket extends BaseSocket {} ?
Вы кода пишите свои уроки шрифт у редактора побольше делайте - так будет удобней вас смотреть
Подскажите плс...
Использую laravel 5.4 Прохожу данный урок шаг в шаг что бы ознакомиться в практике с сокетами, Дошел до момента make:console, в 5.4 такой команды у artisan нет, но есть make:command.
После создания Console-|Command-|ChatServer.php и выполнения команды php artisan chat_server:serve
получаю:
[Symfony\Component\Debug\Exception\FatalErrorException]
Declaration of App\Classes\Socket\Base\BaseSocket::onOpen(App\Classes\Socket\Base\ConnectionInterface $conn) must be compatible with Ratchet\ComponentInterface::onOpen(Ratchet\ConnectionInter face $conn)
Немного не понял, как наиболее правильно реализовать отправку с клиента через autobahn?
При запуске сервера пишет Failed to listen on "tcp://0.0.0.0:8080": Даже причину не указывает. Сайт находится на хостинге... Если указать при запуске адрес "127.0.0.1", то работает. Только на этом ip...
Подскажите, что может быть
Привет. У тебя очень класные уроки! Спасибо большое! Подскажи пожалуйста, сделал всё по уроки, но получаю ошибку failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED. Использую Laravel 9 + sail
А как выцепить sessionid клиента, чтобы знать кто в сокет стучится?
А как из этого можно сделать месенжер ?
Спасибо за урок. А как запускать такую команду (chat_serve:serve) на хостинге? через cron? ssh?
Супервизор: laravel.com/docs/5.4/queues#supervisor-configuration
Дмитрий, Спасибо за Ваши уроки!
У меня никак не получается подключиться к серверу. Хотя сервер создался нормально. В Браузере в консоли выходит: WebSocket connection to 'ws://localhost:8080/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
Я уже все варианты перебрал и с портами и с IP. И проброс портов в VM пытался сделать. И через порты 7777 и guet 777 .
Ничего не получается. Два дня выкинул на смарку((((
Всё перепробовал здесь:
$server = IoServer::factory(new HttpServer(new WsServer(new ChatSocket())), 8080');
$server->run();
И здесь
var conn = new WebSocket('ws://localhost:8080');
conn.onopen = function (e) {
console.log("Connection established!");
};
Не подскажите мне, что делать???
+Кушнарёв Владимир
Вероятно мешают какие-то уникальные настройки твоей системы.... У меня все и сразу получилось по оф. документации. Единственная проблема была - не срезу получилось ZMQ установить... но это уже во втором видео. Попробуй упрощать - не в вм, а в самой винде установить XAMPP и там все сделать.
+Dmitry Afanasyev Спасибо за совет. В XAMPP всё работает. А до этого пользовался Homestead, VirtualBox с Vagrant. Так и не пошло.
такая же ошибка, ответа н нашел:(
Подскажите, как запустить это на хостинге? В ChatServer.php мы коннектимся к порту 8080, но хост не дает мне права вешать листенер((
Спасибо. Годный материал! А как правильно остановить ratchat?
Если это Windows, то вот так:
tasklist /FI "IMAGENAME eq php.exe"
- появляется список запущенных консольных php файлов:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
php.exe 918164 Console 1 N/A
php.exe 923608 Console 1 30,504 K
-выбираете свой :
D:\OSPanel\domains\localhost\chat1>taskkill /f /PID 923608
И получаете сообщение:
SUCCESS: The process with PID 923608 has been terminated.
А про далёкое будущее не прогадали :D
Актуален ли сейчас Ratchet?
Самый верный способ - посмотреть развивается проект или нет.
Я уже на Yii2 давно сижу так что это не актуально для меня, но всё равно Thanks a lot of
а я из будущего )))
Как мне использовать другой порт ?
лайк
ya no se usa php artisan make:console para Crear un comando en laravel es php artisan make:command
Кто то знает как можно загрузить сессии laravel в ratchet при подсоединении
отличное видео.. спасибо огромное.
Вы можете подсказать как мне можно на сервер передать onOpen() инфо про юзера, который открыл соединение
или хотя бы как передать сессию.
нашел это,
laravel.io/forum/01-16-2015-loading-laravels-session-using-ratchet
но $cookies = $conn->WebSocket->request->getCookies(); не работает
$conn->WebSocket =
stdClass Object
(
[closing] =>
)
заранее большое спасибо
вебсокет на пыхе - прохладная история. Лучше подойдёт go или нода.
Привет, я из далёкого будущего, какие подводные камни?
Можно тайм код... Самому интересно)))
Если у кого не выходит установить связь с сокетами, то почитайте их документацию, мне помогло лично.
socketo.me/docs/hello-world
Hellp me plase !!!
How to support IE
English ?