Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rtakland/kwsify
基于websocket的实时sub/pub服务
https://github.com/rtakland/kwsify
pubsub realtime server websocket
Last synced: about 1 month 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: 2023-10-02T04:25:14.000Z (about 1 year ago)
- Last Synced: 2023-10-02T14:00:03.861Z (about 1 year ago)
- Topics: pubsub, realtime, server, websocket
- Language: Kotlin
- Homepage: http://kwsify.byteas.top/
- Size: 135 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
基于websocket的实时通信服务
# 目录
* [目录](#目录)
* [使用](#使用)
* [订阅](#订阅)
* [发布](#发布)
* [开发](#开发)
* [构建](#构建)
* [Linux](#linux)
* [Windows](#windows)
* [开源](#开源)
* [鸣谢](#鸣谢)# 使用
```shell
$ java -jar kwsify.jar --help # 获取帮助
```> 在[Release](https://github.com/RTAkland/kwsify/releases/latest/)中下载最新版本的jar使用以下命令运行
```shell
$ # 默认的监听地址为: 0.0.0.0:5050
$ java -jar kwsify.jar [--host 0.0.0.0] [--port 6060]
```## 订阅
> 使用Websocket连接到服务器
> ***返回的数据中的msgType表示的是消息还是通知如果是Message则表明这个返回值是发布者发布的消息***
> ***如果是Notify则标明是系统通知***```shell
$ # 订阅者
$ wscat -c ws://localhost:5050/subscribe
$ > {"action":"Subscribe", "channel":"channel-1"}
$ # {"action":"Subscribe", "channel":"channel-1", "clientId":"this is a client id"}
$ < {"timestamp":...,"msgType":"Notify","msgBody":"..."}
$ # 取消订阅
$ > {"action":"Unsubscribe", "channel":"channel-1"}
$ < {"timestamp":...,"msgType":"Notify","msgBody":"..."}
```* 如果不指定`clientId`则会自动生成一个配置文件长度的随机字符串并返回
* 订阅者发送最少参数为 `{"action":"subscribe", "channel":"test"}`你可以在此基础添加clientId
* 如果你忘记了随机生成的`clientId`那么你可以在`订阅者模式`将`action`设置为 `clientid` (不区分大小写)## 发布
```shell
$ # 发布者
$ wscat -c ws://localhost:5050/publish
$ > {"action":"Publish", "channel":"channel-1", "payload":"this is a test message", "clientId":"this is a client id"}
$ < {"timestamp":...,"msgType":"Notify","msgBody":"Successfully sent to the client!"}
```> 然后就会在订阅者的消息列表中找到`this is a test message`
# 开发
> 使用 `git clone https://github.com/RTAkland/kwsify.git` 克隆到本地然后使用`IDEA`任意版本打开项目文件夹
> 然后就可以开发了, 写好你的代码中后提交`PR`吧~
> ***贡献代码请注意代码规范, 低质量、不遵循Kotlin代码规规范PR请求将会直接被关闭***# 构建
## Linux
> 你需要先将`gradlew`授予可执行权限: `chmod +x ./gradlew`
> 使用 `./gradlew shadowJar` 来进行构建, 产出物在`build/libs/*-all.jar` (文件名需要包含-all字样的jar文件才可以运行)## Windows
> 同上不过不需要提前将`gradlew.bat` 授予权限
> 打开`cmd`或者`powershell`使用 `.\gradlew.bat shadowJar`进行构建# 开源
- 本项目以[Apache-2.0](./LICENSE)许可开源, 即:
- 你可以直接使用该项目提供的功能, 无需任何授权
- 你可以在**注明来源版权信息**的情况下对源代码进行任意分发和修改以及衍生# 鸣谢
* [JetBrains Open Source](https://www.jetbrains.com/opensource/) 项目提供的IDE支持.