多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] > [参考](https://github.com/fanpei0121/balloons-websocket) # balloons-websocket 用于构建实时应用程序的基础架构和API,balloons提供了最好的基础架构和API,以大规模地提供实时体验。向最终用户提供快速稳定的实时消息。让我们处理实时消息传递的复杂性,以便您可以专注于代码。 balloons的实时API向开发人员公开了整个balloons基础架构,从而可以轻松地以任何规模提供实时功能。无需建立和运营基础架构,而将精力集中在交付真正重要的功能上。 ## 提供的功能 1. 实现了```/httpPushMessage``` http协议推送消息 2. 实现了```/wsPushMessage``` ws协议推送消息 3. 实现了```/readMessage``` 订阅频道 ## 运行 本项目使用Go Mod管理依赖。 ```shell go run main.go ``` ## 依赖 不依赖任何第三方服务,可以直接运行在windows, linux, macos 平台 ## 使用 **只有同一个app_key并且同一个channel下才会收到消息, 订阅的readChannel必须和推送消息的writeChannel相同** **sign生成规则:** 1.声明一个字符串,内容为"000"+当前系统时间戳 2.将Secret key(Secret key 为 .env文件的SECRET_KEY 配置参数)作为秘钥,用AES算法对字符串进行加密 3.使用Base64对加密结果进行编码,结果就是sign 4.可以请求http://127.0.0.1:3000/getSign 获取示例sign **app_key: 应用标识** **writeChannel:推送消息的目标通道** **readChannel: 订阅消息的目标通道** ### 功能 1. javascript ws方式推送消息 ```shell let sign = encodeURI("VURxMi9KZk9LVW5Dd1pOeTg5cldnVjZyUS95Q3lwMHp4ZXljSE9adnN5cz0="); let ws = new WebSocket("ws://127.0.0.1:3000/wsPushMessage?app_key=my_app&sign="+sign+"&writeChannel=channel01"); ws.send("message"); ``` 2. http推送消息 * 地址:http://127.0.0.1:3000/httpPushMessage * 类型:POST * 状态码:200 * 简介:无 * 请求接口格式: ``` ├─ app_key: String (服务标识) ├─ sign: String (签名) ├─ writeChannel: String (数据推送的通道) └─ data: String (数据) ``` * 返回接口格式: ``` ├─ code: Number ├─ data: String └─ msg: String ``` 3. javascript 订阅频道 ``` let sign = encodeURI("VURxMi9KZk9LVW5Dd1pOeTg5cldnVjZyUS95Q3lwMHp4ZXljSE9adnN5cz0="); let ws = new WebSocket("ws://127.0.0.1:3000/readMessage?app_key=my_app&sign="+sign+"&readChannel=channel01"); ws.onopen = function() { console.log("client:打开连接"); }; ws.onmessage = function(e) { console.log('接受到消息:' + e.data); }; ws.onclose = function(params) { console.log("client:关闭连接"); }; ```