使用 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.WebSocketjavax.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=&lt;your_socket_api_token&gt;&amp;transport=websocket

此外,由于在任何地方都没有真正提到它,因此他们使用一个整数作为消息类型指示符,预先添加到他们的消息中。

0为初始化消息类型,包含心跳间隔和超时时间 40 是您将要发送和接收的 ping 消息 41 是无效令牌消息,您在连接无效令牌后会收到此消息 42 将是您将收到的实际 streamlabs 事件消息

至少这是我到目前为止收集到的东西,而不是四处寻找。

【讨论】:

以上是关于使用 Java 的 StreamLabs 套接字 API的主要内容,如果未能解决你的问题,请参考以下文章

Java - 使用 ObjectStream 发送套接字

将密码与套接字 java 一起使用,不起作用

Java:如何使用“资源尝试”设置套接字超时

使用带有套接字的 Java 对象流的性能问题

java tcp ip网络编程 套接字的基本使用

使用套接字将数据从 node.js 发送到 Java