https://github.com/rtakland/kwsify
基于websocket的实时sub/pub服务
https://github.com/rtakland/kwsify
kotlin pubsub realtime server websocket
Last synced: 3 months ago
JSON representation
基于websocket的实时sub/pub服务
- Host: GitHub
- URL: https://github.com/rtakland/kwsify
- Owner: RTAkland
- License: apache-2.0
- Created: 2023-09-12T12:57:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-17T09:49:03.000Z (4 months ago)
- Last Synced: 2025-01-17T10:35:46.625Z (4 months ago)
- Topics: kotlin, pubsub, realtime, server, websocket
- Language: Kotlin
- Homepage:
- Size: 236 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
基于websocket的实时通信服务
![]()
![]()
![]()
![]()
![]()
# 使用
> kwsify使用二进制来发送数据包, 这就意味着你不能使用wscat之类的
> 纯文本websocket调试器来调试服务端, 我会在下面的文档中给出所有数据包的偏移值文档地址: https://docs.rtast.cn/#/docs/kwsify/kwsify
[这里](https://repo.rtast.cn/RTAkland/rautiotransfer)是一个示例项目用于将本地的音频文件传输给其他客户端
## 服务端
### 构建
```shell
$ chmod +x ./gradlew # 可选
$ ./gradlew buildShadowJar
``````shell
$ java -jar kwsify.jar [--port 8989]
```## SDK
### 添加Maven仓库
```kotlin
repositories {
maven("https://repo.maven.rtast.cn/releases")
}```
### 添加依赖
```kotlin
dependencies {
implementation("cn.rtast:kwsify-api:2.0.0") // 替换成最新版本
}
```> 点[这里](https://pkg.rtast.cn/#/releases/cn/rtast/kwsify-api)查看所有版本(记得使用`api`模块而不是`server`模块)
### 开始使用
```kotlin
fun main() {
val wsify = Kwsify("ws://127.0.0.1:8080")
wsify.subscribe("test", true, object : Subscriber {
override fun onMessage(channel: String, payload: ByteArray, packet: OutboundMessageBytesPacket) {
// payload是完整的二进制数据包, packet.body是ByteArray形式的任意数据如果确定发送的是纯文本
// 那么直接使用String(packet.body)即可还原出纯文本
println(String(packet.body))
}override fun onClosed(channel: String) {
println("closed")
wsify.reconnect()
}
})
Thread.sleep(1000L)
wsify.publish("test", "114514")
}
```# 开源
- 本项目以[Apache-2.0](./LICENSE)许可开源, 即:
- 你可以直接使用该项目提供的功能, 无需任何授权
- 你可以在**注明来源版权信息**的情况下对源代码进行任意分发和修改以及衍生# 鸣谢
JetBrains Open Source
提供的强大IDE支持