All Projects → sunshinev → Go Space Chat

sunshinev / Go Space Chat

Licence: mit
【孤单Lonely】基于Golang/WebSocket/Canvas/Protobuf 的聊天室

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
Chat Room
使用GO+Vue构建的聊天室网站
Stars: ✭ 113 (-50.44%)
Mutual labels:  chatroom, websocket
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
Charroom
PHP + Swoole 聊天室
Stars: ✭ 125 (-45.18%)
Mutual labels:  chatroom, websocket
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
Chat Room
一个普通的聊天室
Stars: ✭ 85 (-62.72%)
Mutual labels:  chatroom, websocket
Centrifuge Go
Go WebSocket client for Centrifugo and Centrifuge library
Stars: ✭ 95 (-58.33%)
Mutual labels:  protobuf, websocket
Chatroom Vue
一个简单的多人聊天室。基于vue和node+Socket.IO
Stars: ✭ 71 (-68.86%)
Mutual labels:  chat, 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
Basic Vue Chat
Easy to use Vue chat.
Stars: ✭ 64 (-71.93%)
Mutual labels:  chatroom, chat
Nettychat
基于Netty+TCP+Protobuf实现的Android IM库,包含Protobuf序列化、TCP拆包与粘包、长连接握手认证、心跳机制、断线重连机制、消息重发机制、读写超时机制、离线消息、线程池等功能。
Stars: ✭ 1,979 (+767.98%)
Mutual labels:  protobuf, chat

孤独 Lonely

d2139b33a9868d1f17a471201d1272371588868902.jpg

Demo

http://chat.osinger.com/

特色

  1. 支持性别修改、并且有颜色替换
  2. 支持敏感词过滤
  3. 支持姓名修改

介绍

通过canvas 2d来模拟了3D的视觉效果。

并且在该项目中使用了protobuf来进行前端和后端的通讯协议,这一点非常方便!

操作

  1. 项目使用传统WASD按键来控制上下左右
  2. 眼睛可以跟随鼠标的位置进行转动
  3. 按下space 空格可以输入消息,按下回车发送消息
  4. 左上角按钮可以输入名称,点击空白处名称生效

运行

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

有意思的难点

这里列举几个在实现过程中,遇到的很有意思的问题

  1. 如何实现无限画布?
  2. 如何实现游戏状态同步?

proto 文件生成指令

protoc -I ./ *.proto --go_out=.
protoc --js_out=import_style=commonjs,binary:. *.proto

相关链接

Canvas 基本用法

Protobuf Guide

Vue.js

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].