|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.06.2020, 13:49 | #1 |
Пользователь
Регистрация: 02.09.2018
Сообщений: 22
|
Реализация личной переписки на RatChet
Доброе время суток товарищи.
В начале того месяца решил сделать чат на своем сайте(пока что локальном), посёрфил инет, выбрал язык в котором более менее разбираюсь, и приступил к работе, все шло отлично до момента пока я не догадался что сообщение отправляется на сервер ко всем пользователям, и опять я начал искать решение в интернете нашел парочку решений углубился но так ничего и не понял Инфу брал от сюда: https://github.com/luschenko/js_resh.../26_js_reshaet https://qna.habr.com/q/692275 https://overcoder.net/q/336409/%D0%B...-php-websocket https://github.com/cboden/Ratchet-ex...e/ChatRoom.php Вот как я реализовывал это: Файл сервера Код:
Сам скрипт: Код:
|
02.06.2020, 16:10 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
сейчас то что не устраивает? Использование БД?
Полюбому надо где то будет хранить сообщения |
03.06.2020, 15:37 | #3 |
Пользователь
Регистрация: 02.09.2018
Сообщений: 22
|
ADSoft, Хранение в базе данных это обязательно, здесь проблема в том, что когда пользователь пишет сообщение оно попадает ко всем кто сейчас находится на сервере, а не конкретному. Есть мысль как это реализовать но на стороне кода не понимаю как это сделать.В RatChet есть Rooms , если придать room параметр $_GET['id_ex'], и потом пропускать туда пользователей у которых тоже будет передаваться этот параметр. Но как перередать это знаиние либо как придать его к Rooms не понимаю.
|
03.06.2020, 20:31 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
так зачем тогда multicast ?
отправляй конкретно 1 пользователю |
04.06.2020, 00:30 | #5 |
Пользователь
Регистрация: 02.09.2018
Сообщений: 22
|
ADSoft,Я понял что нужно, отправлять через send_to(), но как именно выбрать именно того пользователя которому нужно отослать это сообщение. Мне нужно сделать что то подобное:
Код:
Последний раз редактировалось Максим Королев; 04.06.2020 в 03:20. Причина: Усовершенстововал слегка) |
04.06.2020, 08:04 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
да что вы то к широковещанию для всех, теперь к комнатам привязались?
У вас нужно отправлять конкретному клиенту - так и отправляйте Код:
|
05.06.2020, 07:22 | #7 | |
Пользователь
Регистрация: 02.09.2018
Сообщений: 22
|
Цитата:
|
|
05.06.2020, 07:54 | #8 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
ну у меня так было реализовано:
- при первом коннекте, пользователь должен залогиниться - на стороне сервера проверяем лог/пасс, или ключ ..смотря как регался, после чего у нас есть id пользователя, присоединеям К $client->id_user и еще - все что хотим. - после чего у нас есть нужная информация - сама отправка сообщений шла через очереди ZeroMQ и PHP, то есть в сервере был обработчик поступления данных из очереди - как данные поступали - тут же по вебсокету отправлялись |
05.06.2020, 08:42 | #9 |
Пользователь
Регистрация: 02.09.2018
Сообщений: 22
|
То есть получается у вас был прямой доступ к базе, либо вы через сессию все делали?
|
05.06.2020, 12:22 | #10 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
был доступ конечно
через сессию тут не сделаешь, это ж сокеты ну у меня было не сдеалать - ибо у меня общение было и с мобильных и с сайтов |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование переписки в любом окне | Norkus | Безопасность, Шифрование | 3 | 24.08.2017 10:13 |
Компонент личной страницы для пользователей | mila_serdnaya | Фриланс | 0 | 04.11.2016 08:13 |
Софт для переписки с большого количества аккаунтов ВК | Primo13 | Фриланс | 0 | 14.09.2015 13:51 |
CMS с личной страницей | Green4el | WordPress и другие CMS | 0 | 04.06.2013 10:52 |
Конференц-чат с поддержкой истории почтовой переписки | Рыбёшка | Помощь студентам | 0 | 13.02.2013 15:57 |