sunshinev / Go Space Chat
Licence: mit
【孤单Lonely】基于Golang/WebSocket/Canvas/Protobuf 的聊天室
Stars: ✭ 228
Programming Languages
javascript
184084 projects - #8 most used programming language
golang
3204 projects
Projects that are alternatives of or similar to Go Space Chat
Gochat
goim server write by golang !🚀
Stars: ✭ 1,144 (+401.75%)
Mutual labels: chatroom, chat, websocket
Workerman Chat
Websocket chat room written in PHP based on workerman.
Stars: ✭ 988 (+333.33%)
Mutual labels: chatroom, chat, websocket
Syntaxmeets
Syntaxmeets. Create rooms 🏠 Call your friends 👬🏼 Sip Chai, ☕ Chat, Create, and Code👨💻. A coding platform to code simultaneously 🚀 with your friends and design your algorithms on SyntaxPad.💫✨
Stars: ✭ 110 (-51.75%)
Mutual labels: chatroom, chat
Him Vue
开源的H5即时聊天系统 spring-boot + netty + protobuf + vue ~
Stars: ✭ 142 (-37.72%)
Mutual labels: protobuf, websocket
Chat Engine
Object oriented event emitter based framework for building chat applications in Javascript.
Stars: ✭ 87 (-61.84%)
Mutual labels: chat, websocket
Lawsroom
Group video chat on your browser. [No plugin required]
Stars: ✭ 87 (-61.84%)
Mutual labels: chatroom, chat
Gateway
🚀构建分布式即时聊天、消息推送系统。 Building distributed instant messaging, push notification systems.
Stars: ✭ 188 (-17.54%)
Mutual labels: chat, websocket
Wechat
聊天系统、Vue.js、React.js、node.js、MongoDB、websocket、socket.io、前后端分离、毕业设计。
Stars: ✭ 188 (-17.54%)
Mutual labels: chat, websocket
Istio Micro
istio 微服务示例代码 grpc+protobuf+echo+websocket+mysql+redis+kafka+docker-compose
Stars: ✭ 194 (-14.91%)
Mutual labels: protobuf, websocket
Sketchpad
Sketchpad is fully customisable collaborative whiteboard plugin written in pure JavaScript.
Stars: ✭ 85 (-62.72%)
Mutual labels: websocket, canvas
Centrifuge Go
Go WebSocket client for Centrifugo and Centrifuge library
Stars: ✭ 95 (-58.33%)
Mutual labels: protobuf, websocket
Swoole Tadpole
tadpole chatroom (maybe spermium) powered by swoole and slim framework
Stars: ✭ 116 (-49.12%)
Mutual labels: chatroom, websocket
Cookim
Distributed web chat application base websocket built on akka.
Stars: ✭ 198 (-13.16%)
Mutual labels: chat, websocket
Gophergameserver
🏆 Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: ✭ 61 (-73.25%)
Mutual labels: chat, websocket
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+767.98%)
Mutual labels: protobuf, chat
孤独 Lonely
Demo
特色
- 支持性别修改、并且有颜色替换
- 支持敏感词过滤
- 支持姓名修改
介绍
通过canvas 2d来模拟了3D的视觉效果。
并且在该项目中使用了protobuf来进行前端和后端的通讯协议,这一点非常方便!
操作
- 项目使用传统
WASD
按键来控制上下左右 - 眼睛可以跟随鼠标的位置进行转动
- 按下
space
空格可以输入消息,按下回车发送消息 - 左上角按钮可以输入名称,点击空白处名称生效
运行
go run main.go
该命令会启动web-server作为静态服务,默认80端口,如果需要修改端口,用下面的命令
go run main.go -web_server 8081
项目启动默认websocket服务端口为9000端口,如果需要修改
go run main.go -socket_server 9001
注意:如果修改websocket端口,同时需要修改js里面的socket端口
技术工具
前端 Vue+canvas+websocket+protobuf
后端 Golang+websocket+protobuf+goroutine
有意思的难点
这里列举几个在实现过程中,遇到的很有意思的问题
- 如何实现无限画布?
- 如何实现游戏状态同步?
proto 文件生成指令
protoc -I ./ *.proto --go_out=.
protoc --js_out=import_style=commonjs,binary:. *.proto
相关链接
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].