powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
8 сообщений из 8, страница 1 из 1
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117069
try_except
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите разобраться, как правильно реализовать.
Суть: Клиент - зарядные станции, которые подключаются открывают сокет и отправляю на сервер сообщения и получают ответы.
Сервер - слушает порт, видит подключенную станцию, принимает сообщения и отправляет на них ответы.
Вопрос: Когда клиент подключается и присылает headers я могу отправить сообщение клиенту. Но мне нужно, отправлять периодически сообщения клиенту, который держит открытым сокет, не понимаю, как это реализовать. Может кто-то подскажет?
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117073
try_except
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример кода отправки:

Код: python
1.
2.
3.
4.
5.
6.
7.
    charge_point_id = path.strip('/')
    cp = client_main(charge_point_id, websocket)
    logging.info(charge_point_id)
    print(charge_point_id)
    print(path)
    await websocket.send(json.dumps([2,"222", "GetLocalListVersion", {}]))
    await cp.start()
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117074
try_except
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример получения сообщения от клиента:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class client_main(cp):

        errors = False
            
        if not errors:
            
                        
            @on('BootNotification')
            def on_boot_notitication(self,    charge_point_vendor, charge_point_model,charge_point_serial_number,firmware_version, 
                                     meter_type, **kwargs):
               return call_result.BootNotificationPayload(
                    status="Accepted",
                    current_time=date_str.replace('+00:00','Z'),
                    interval=60
                )
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117360
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
try_except,

добрый день,

попробуйте не on_boot, а heartbeat https://github.com/mobilityhouse/ocpp/blob/ab04d52cc5fc5f447c3683c78839fee9cdadb9ce/examples/v201/central_system.py#L32
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117650
try_except
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iot,
я получаю heartbeat и в ответ отправляю время.
Но как я могу, запросить другие команды, например: reservenow, reset и т.д.?
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117655
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
try_except
iot,
я получаю heartbeat и в ответ отправляю время.
Но как я могу, запросить другие команды, например: reservenow, reset и т.д.?

Код: python
1.
2.
3.
    @on('Heartbeat')
    def on_reset(self):
        #my reset code there
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40117723
try_except
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iot, так мне нужно на heatrbeat оправить время.
Вы предлагаете, таким образом?

Код: python
1.
2.
3.
4.
5.
6.
7.
@on('Heartbeat')
    def on_getlocallistversion(self):
    await self.route_message(json.dumps([2,"222","GetLocalListVersion",{}]))
    def on_hearbeat(self):
        return call_result.HeartbeatPayload(
                    current_time=datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S')+"Z"
       )
...
Рейтинг: 0 / 0
python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
    #40118004
iot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iot
Гость
try_except
iot, так мне нужно на heatrbeat оправить время.
Вы предлагаете, таким образом?

Код: python
1.
2.
3.
4.
5.
6.
7.
@on('Heartbeat')
    def on_getlocallistversion(self):
    await self.route_message(json.dumps([2,"222","GetLocalListVersion",{}]))
    def on_hearbeat(self):
        return call_result.HeartbeatPayload(
                    current_time=datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S')+"Z"
       )


судя по примерам https://github.com/mobilityhouse/ocpp/blob/ab04d52cc5fc5f447c3683c78839fee9cdadb9ce/examples/v201/charge_point.py выглядит так:
Код: python
1.
2.
3.
4.
5.
    async def send_heartbeat(self, interval):
        request = call.HeartbeatPayload()
        while True:
            await self.call(request)
            await asyncio.sleep(interval)


требуемый reguest выбираете видимо здесь https://github.com/mobilityhouse/ocpp/blob/ab04d52cc5fc5f447c3683c78839fee9cdadb9ce/ocpp/v20/call.py или реализуете свой по образу и подобию
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python/ websocket реализация отправки сообщений клиенту, который держит сокет открытым
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]