[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с сокетами
Mr_vads
Здравствуйте уважаемые программисты! Обращаюсь к Вам за советом с целью решения поставленной мною задачи.

Сразу хочу Вас поставить в известность о своих знаниях касаемо PHP - начальные, ибо я не тревожит Вас и не создавал бы эту тему.

Цель состоит в следующем:
Разработать алгоритм обработки информации с контроллеров(клиентов) на сервере, с последующей записью этой информации в БД (MYSQL). Обмен данными между клиентом и сервером реализован посредством протокола web-socket.

Для общего понимания расскажу как все устроено:
Существует беспроводная ZigBee сеть, которая содержит контроллер-координатор, который посредством данной беспроводной сети, получает от ведомых контроллеров различную статистику некоторых параметров. После сбора статистики, контроллер-координатор отправляет данную информацию на сервер посредством протокола GPRS. Передаваемая информация представляет собой структурированный набор данных в виде фрейма (F1 FF 06 13 и т.д.). Далле я выполняю парсер данных и записываю ее в бд.

Вопрос:
Как реализовать работу с контроллером(клиентом) в рамках сессии? Т.е. например, существует 10 таких контроллеров, и все они подключились к серверу, как мне обрабатывать информацию от каждого из них в рамках активного соединения? Необходимо реализовать работу таким образом, чтобы сервер понимал, что при подключении клиента, все последующие сообщения статистики ведомых контроллеров относились только к нему.
Возможно мой вопрос не корректен, но я по необходимости предоставлю схему работы для Вас, так сказать чтобы все описанное выше, было предметным.

Сейчас я реализовал работу с одним контроллером, но мне не удаётся реализовать работу с двумя, так как серверу абсолютно все равно, кто шлёт информацию. Начинается путаница и несоответствие данных.

Прошу Вас дать рекомендации.
У меня есть соображения на счет того, что ответ на мой вопрос кроется непосредственно в методе реализации сокет сервера.

Утром скину листинг и схему.
arbuzmaster
Вот как это реализовано у меня:
Есть web-socket server на PHP - 1 шт
Клиенты на ESP-8266 - 5 шт на данный момент
Сервер принимает сообщения от всех клиентов и передает тоже всем без исключения.
Формат сообщений - JSON
примеры сообщений
{"setup":[{"group":"switch","device":"light","id":"2","value":"0"}]}
{"update":[{"module_esp":"1","group":"sensors","device":"sensor_light","id":"1","value":"12"}]}
{"info":[{"device":"module_esp","id":"2","esp_ip":"192.168.1.102","wifi_power":"-59"}]}
Setup - установка значений (вкл. выкл. отправка ИК сигнала. например)
Update - обновление значений (сенсоры, выключатели и т.д.)
Info - информация о модуле
WEB Клиент *(браузер) тоже работает на web-socket и в режиме реального времени обрабатывает JSON сообщения и выводит инфу на экран

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.