Задать вопрос
@80689248440

Как работать с сокетами? Что куда отправляется?

Вдохновившись вот этой статьёй https://habrahabr.ru/post/301822/ и кодом с гитхаба https://github.com/anlide/websocket решил разобраться.
Не доходит как сделать так чтоб подключившиеся постоянно получали данные с сокета - например данные графика и только тогда когда они отличны от тех что есть. Так же не понимаю как постучаться в обратную сторону - например могу сделать чтоб что-то пришло в браузер ответом (то есть я должен сообщит серверу что мне что-то надо, но не могу чтоб сервер мне сам прислал что-то при событии например когда получил личное сообщение).
Еще не понятнее реализовать личный кабинет на сокетах - например после авторизации юзер попадает в спец раздел сайта и на js он начинает получать данные (из первого вопроса + свои личные данные) - сессии как я понял не подходят - нужно именно отправить какие-то данные чтоб авторизовать в сокете юзера - я правильно понял?
Вобще как работает php с js через сокеты?
Информации вроде много но толком рерайт одной и той же статьи.
  • Вопрос задан
  • 1175 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Знакомы с ajax? Различия лишь в том, что сокеты всегда держат коннект. Как работать?
var socket = new WebSocket("wss:/сайт.ру:7777/");
socket.onmessage = function(event) {
	console.log(event.data)
};

Тут показан пример обработки приходящего сообщения с сервера. Ответ вывести в консоль. Данные можно также отправлять и на сервер. Лично мне нравится Workerman библиотека. Однако, чтобы сокет работал, надо запускать php через консоль и он работал постоянно. Данные на стороне сервера проверяйте как удобно.
Ответ написан
edli007
@edli007
full stack, team lead
Вы конечно правильно вдохновились, но думаю не просто так для сокетов в пхп подымают отдельный демон не на пхп. У вас не будет проблем с сокетами но пройдет еще лет 5 пока пхп научиться работать полноценно с асинхронностью.

Обычно рядом с пхп подымают демон сокет сервера и общаються с ним через каналы редиса.
Более простой вариант, это общение с сокет сервером по локалхосту.

Вобще на живом примере могу показать как это работает, только не в пхп.
Ответ написан
@KirEv
Есть отличная штука, называется socket.io

С этого же сайта, пример чата:
https://github.com/socketio/socket.io/tree/master/...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы