Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа с socket или WebSockets

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Подключиться, послать параметры и получить ответ
Hapson
Отправлено: 31 Мая, 2016 - 14:48:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


Всем привет.
Суть проблемы: я забыл php Улыбка
Есть некий сервис, который предоставляет кнопку для сбора пожертвований. Для мониторинга имеются нотификаторы: оповещение о пожертвовании и виджет сбора средств, показывающий сколько уже собрано и сколько нужно собрать.
Помимо этого сервиса есть еще один аналогичный. Так вот мне нужно получать данные от этих сервисов и формировать из них свои нотификаторы. У одного сервиса есть хороший API, а вот другой сервис, толи еще не успел документировать API, толи не хотят, но вот что мне ответили:
Цитата:
подключитесь по адресу: socket.site.ru:3001 с передачей двух параметров:
token - Ваш токен;
type - со значением "alert_widget" или "minor".
Вы будете получать информацию о пожертвованиях в формате JSON в реальном времени.

Так вот, помогите, как это сделать. Я пробовал подключиться через socket_connect - подключаюсь, но параметры им как передать?
А вообще они это организовали наверно через WebSockets, так как их виджеты - это web страрички, в которых имеются обезображенные JavaScript обернутые в eval.
Но мне собственно особо без разницы, как получать данные - через javascript или php.


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Hapson
Отправлено: 02 Июня, 2016 - 10:22:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


Никто не знает?


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
OrmaJever Модератор
Отправлено: 02 Июня, 2016 - 12:04:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




а что тут знать? если это и правда вебсокеты то с ними не сложно
https://learn[dot]javascript[dot]ru/websockets
а всё остальное должно быть в описании к этому апи, каким способом параметры передавать, что будет приходить и т.д.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Hapson
Отправлено: 02 Июня, 2016 - 13:44:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


OrmaJever
Да сервис использует WebSocket, более того - библиотеку socket.io.
Осталось только разобраться в их скриптах, в божеский вид я их привел, нужно отследить, как передаются параметры.
(Добавление)
Еще вопрос, если делать это на php, то какой функцией вообще передаются параметры - socket_write?
И каков порядок подключения и дальнейшего прослушивания сокета? Везде по-разному описывают. Что-то там нужно биндить, какие-то опции ставить...


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
OrmaJever Модератор
Отправлено: 02 Июня, 2016 - 15:42:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Hapson пишет:
И каков порядок подключения и дальнейшего прослушивания сокета?

я же дал ссылку, там всё наглядно написано, код не сложный.
Hapson пишет:
Еще вопрос, если делать это на php, то какой функцией вообще передаются параметры - socket_write?

технология вебсокетов по большей части придумана для браузера, поэтому клиент в большинстве случаев - браузер где и есть всё нужное для подключения, а вот в php я не встречал библиотек для работы с вебсокетами, они скорее всего есть, надо погуглить.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Hapson
Отправлено: 02 Июня, 2016 - 17:54:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


OrmaJever
Эм... ты не понял. Меня интересует работа в php с этими функциями http://php.net/manual/ru/ref.sockets.php
Правильная работа. То есть, подключиться к сокету и ожидать от него постоянно данные, по окончании сеанса работы правильно разорвать соединение. Сеанс может длиться 2-3 часа.


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
OrmaJever Модератор
Отправлено: 02 Июня, 2016 - 18:05:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Hapson socket_* это низкоуровневые сокеты, работать с ними не сложно но тут они не помогут. Технология websocket во-первых "шифрует" каждый пакет во-вторых требует не просто соединения а некий handleshake, я сомневаюсь что вы хотите с этим разбираться, поэтому лучше погуглить библиотеки для работы с вебсокетами.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Hapson
Отправлено: 02 Июня, 2016 - 18:31:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


OrmaJever
Для реализации через javascript есть библиотека socket.io - они используют ее, можно просто модифицировать их код под свои нужды.
Но хотелось бы делать это на php, так как есть еще API другого сервиса, код для которого я буду писать на php. И, хотелось бы объединить это все как можно проще.
Меня интересует, как послать на их сервер данные после коннекта. И как потом ожидать данные от них


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
esterio
Отправлено: 02 Июня, 2016 - 20:02:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




OrmaJever ж написал что для WebSocket-ов нужно рукопожатия. На уровне sockets.io они использують возможность в браузере уже готовую. В PHP такого нету. Вам либо нужно писать свое с нуля, что очень нелегко или использовать готовую библиотеку что предпочтительней.
 
 Top
Hapson
Отправлено: 03 Июня, 2016 - 14:50:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


OK, я кажется начинаю понимать Улыбка
Получилось сделать на js с использованием socket.io. Только вот непонятно, есть ли там возможность слушать все события от сервера, или обязательно свой обработчик на каждое событие.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var socket = io.connect(WS_host);
  3.  
  4. socket.on("event", callback);
  5.  


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB