这是一个go语言开发的websocket项目。本人空余时间开发,欢迎大佬们指指点点
本项目可以支持消息推送,可以做即时通信聊天业务等,有空我会一直完善项目
1.首先你需要下载gopush
go get github.com/maxyang107/gopush
2.进入gopush目录执行下列命令
go build -o gopush ./
3.启动服务
./gopush
{
"Name": "GO PUSH SERVER",
"Address": "127.0.0.1",
"Port": 8088,
"WriteWait": 10,
"PongWait": 60,
"PingPeriod": 54,
"MaxMessageSize": 1024
}
具体配置项说明在utils下config.go有详细说明,请前往查看配置
{
"DbHost": "127.0.0.1",
"DbPort": 3306,
"DbName": "gopush",
"DbUser": "root",
"DbPwd": "root12345",
"DbCharset": "utf8mb4",
"DbParseTime": "True",
"DbLoc": "Local",
"DbPrefix": "",
"DbType": "mysql"
}
具体配置项说明在utils下db.go有详细说明,请前往查看配置
1.连接地址
ws://127.0.0.1:8088/ws
2.首次连接,客户端需要绑定客户端id,参数方式
{"userId":"1234", "option":"bindUserId"}
3.绑定userId后,可以正常使用业务,其他业务方法调用方式同上述一致
{ "option":"xxxfunc","param1":"XXXXX","param2":"XXXXX"}
gopush启动后会启动httpserver,访问地址:http://127.0.0.1:8088/
http服务主要提供管理websocket连接的功能,如创建分组,向分组广播信息。(应用场景如群聊,分组推送站内信等)
该方法增加了权限控制,请求参数必须携带SourceCode参数,服务端验证了SourceCode与远端请求地址Source是否符合授权,如果没有授权的请求会被拦截
调用方式: http://127.0.0.1:8088?func=createGroup&groupName=卡尔的房间&SourceCode=02020
如此便创建好了一个房间,客户端携带groupname:卡尔的房间,即可加入该房间
权限设置接口
http://127.0.0.1:8088/manager
请求方式POST
请求参数
{
"Source":"http://127.0.0.1:8088",//授权地址
"SourceCode":21321,//授权码
"SourceStatus":1,//授权状态
"SourceTip":"优海"//授权平台
}