使用 Java 的 StreamLabs 套接字 API
Posted
技术标签:
【中文标题】使用 Java 的 StreamLabs 套接字 API【英文标题】:StreamLabs socket API using Java 【发布时间】:2020-11-07 00:24:47 【问题描述】:我正在尝试使用 Java 连接到 streamLabs 套接字 API。 API 网址是
https://sockets.streamlabs.com?token=<socketToken>
这不起作用,因为 Java 期望套接字是 ws://...
。当我将其更改为“ws”格式时,它会导致连接超时。
我错过了什么吗?这实际上不是 websocket,如果不是,它会如何工作?
这是他们文档的链接:https://streamlabs.readme.io/docs/socket-api
更多信息:我已经尝试过 org.asynchttpclient.ws.WebSocket
和 javax.websocket
都没有工作
【问题讨论】:
【参考方案1】:使用 SocketIo 解决
<dependency>
<groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId>
<version>1.0.0</version>
</dependency>
【讨论】:
【参考方案2】:他们的套接字文档肯定是缺失的,您将连接到的实际 websocket url 是
wss://sockets.streamlabs.com/socket.io/?token=<your_socket_api_token>&transport=websocket
此外,由于在任何地方都没有真正提到它,因此他们使用一个整数作为消息类型指示符,预先添加到他们的消息中。
0
为初始化消息类型,包含心跳间隔和超时时间
40
是您将要发送和接收的 ping 消息
41
是无效令牌消息,您在连接无效令牌后会收到此消息
42
将是您将收到的实际 streamlabs 事件消息
至少这是我到目前为止收集到的东西,而不是四处寻找。
【讨论】:
以上是关于使用 Java 的 StreamLabs 套接字 API的主要内容,如果未能解决你的问题,请参考以下文章