如何通过使用STOMP 1.2协议和python的websocket访问api?

时间:2019-02-21 16:34:27

标签: python python-3.x websocket stomp kontakt.io

我正在通过Websocket与Kontakt.io API合作。我创建的第一个连接是用JavaScript编写的示例。现在,我想使用Python创建与此API的连接。

我试图实现从该库websocket-client中读取文档的代码,并使用此问题来更好地理解如何进行:Accessing API via WebSockets using 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()方法应通过ws.send()方法使用一些参数从API检索数据,如下所示:

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

根据以下问题,我在payload中使用了键,例如'event'和'channel':How To Subscribe To Websocket API Channel Using Python?

我正在尝试访问API中的一些方法,例如/presence/stream/:sourceId

感谢您对此问题的任何建议。

0 个答案:

没有答案