Как получить доступ к API через веб-сокеты, которые используют протокол STOMP 1.2 с Python? - PullRequest
0 голосов
/ 21 февраля 2019

Я работаю с Kontakt.io API через веб-сокеты.Первое соединение, которое я создал, было написано на JavaScript.Теперь я хочу использовать Python для создания соединения с этим API.

Я пытался реализовать код для чтения документов из этой библиотеки websocket-client и использовал этот вопрос, чтобы лучше понять, какпродолжить: Доступ к API через WebSockets с использованием Python .

Эти ссылки были очень полезны в начале.Однако после нескольких шагов один метод не получает никаких данных.

Это код, который я использую:

import socket
from websocket import create_connection, WebSocket

api_key = 'DNwJnXXXXXXXXXXXXXXXXXXX'
host = 'ovs.kontakt.io'
port = '9090'

headers = {
  'Api-key': api_key,
  'Accept': 'application/vnd.com.kontakt+json;version=10'
}
url = f'wss://{host}:{port}/stream?apiKey={api_key}'
ws = create_connection(url, header=headers)

После того, как этот код был выполнен, я подтвердил, что соединение былоуспешно создан:

In []: ws.connected
Out[]: True

В соответствии с вопросом, который я использовал в качестве поддержки, я обнаружил, что этот метод ws.recv() должен извлекать данные из API с использованием некоторых параметров с помощью метода ws.send() следующим образом:

ws.send(json.dumps({
  'event': 'subscribe',
  'channel': '/presence/stream/0X:8X:DX:DX:0X:5X'
}))
while True:
  result = ws.recv()
  print (result)

Я использовал ключи, такие как 'event' и 'channel' в payload в соответствии с этим вопросом: Как подписаться на канал API Websocket с помощью Python?

Я являюсьпытается получить доступ к нескольким методам в API, таким как /presence/stream/:sourceId.

Спасибо за любые советы по этому вопросу.

...