【Github】项目名:woodylan/go – websocket:基于Golang的分布式WebSocket服务
一、项目简介
该项目基于Golang、ETCD、RPC实现分布式WebSocket微服务,也可单机部署(单机部署不需要ETCD、RPC)。它支持分布式部署下的nginx负载均衡和水平扩容部署,程序间使用RPC通信。功能方面,它能用ws协议连接服务得到clientId,服务端可依据clientId向客户端发消息、绑定客户端到分组、向分组发消息、获取在线客户端、上下线自动通知等,适用于长连接场景。
二、项目下载与执行
可以下载已经打包好的项目,支持Linux、Windows、MacOS环境:https://github.com/woodylan/go – websocket/releases。也能自己编译,如git clone https://github.com/woodylan/go – websocket.git后,按照不同的系统需求编译(如编译适用于本机的版本:go build;编译Linux版本:CGO_ENABLED = 0 GOOS = linux GOARCH = amd64 go build等),编译成功得到二进制文件go – websocket后执行即可。
三、连接测试与项目体验
连接测试可打开支持Websocket的客户端,输入ws://127.0.0.1:7800/ws?systemId = xxx进行连接,成功会返回clientId。单机构建镜像体验:docker build – t go – websocket.,基于镜像运行容器:docker run – tid – p7800:7800 go – websocket;体验集群则在当前目录下直接运行docker – compose up即可。
四、项目配置
配置文件位于项目根目录的conf/app.ini,其中包含如[common]中的HttpPort、RPCPort、是否集群、对称加密key等设置,[etcd]中的Endpoints设置等。运行项目时在不同机器要注意配置端口号,同一机器要用不同端口,还可以用supervisor做进程管理。并且给出了配置Nginx负载均衡的示例。
五、项目功能总结
项目实现了分布式账户授权模式、不同业务系统隔离、发送给指定客户端、发送给指定分组、上下线通知、群广播、错误日志、参数校验、关闭某个连接、支持docker、查询某个客户端是否在线等功能。欢迎大家在QQ群1028314856进行沟通交流。期待大家留言讨论这个项目。
项目地址
数据统计
数据评估
本站链氪巴士提供的woodylan/go-websocket:基于Golang的分布式WebSocket服务都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。
相关导航

Bluesky Social application is available on Web, iOS, and Android. It is a React Native app written in TypeScript with some Golang code. Part of the ATProtocol ecosystem, it has its own set of schemas and APIs. Contributions are accepted with specific rules. Security issues can be reported via email. It is an open - source project under the MIT license. This app offers an alternative in the social media landscape and has its own development and contribution guidelines.