使用2个不同的Websocket API的不同行为,但请求相同 WSCAT Python API 两个API

问题描述

我正在尝试与Samsung智能电视进行通信,并且在互联网上发现它可以与Websocket配合使用。

GitHub上有一些Samsung smart TV API,但它们不适用于我的电视。显然,我有一个不太常见的电视型号。

当前,我陷入困境是因为当我使用两个不同的Websocket API做(或尝试做)相同的事情时,我没有相同的行为。

wscat

$ wscat -c wss://192.168.1.20:8002/api/v2/channels/samsung.remote.control?name=dGVzdA== -n --no-color
Connected (press CTRL+C to quit)
< {[...]"token":"11235326"[...]}
> 

“我的电视”显示一个弹出窗口,要求我提供遥控器授权。然后我在终端中收到一个令牌,但是我不明白如何在bash中检索它。

Python API

>>> import websocket,ssl
>>> uri = 'wss://192.168.1.20:8002/api/v2/channels/samsung.remote.control?name=dGVzdA=='
>>> ws = websocket.create_connection(uri,sslopt={"cert_reqs": ssl.CERT_NONE})

我的电视上没有弹出窗口。 我尝试了使用有效负载send方法来降低电视的音量。

>>> payload = '{[working payload]}'
>>> ws.send(payload)
145

它回答我“ 145”,但是电视上什么也没做。

两个API

但是,如果我连接到wscat(在弹出窗口中选择授权),则可以立即使用Python API控制电视。即使python3控制台仍然回答我“ 145”,而未使用wscat给出的令牌¯\ _(ツ)_ /¯

这两种Websocket创建之间有区别吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)