/go-chat

使用Go编写基于websocket的多房间聊天程序

Primary LanguageGo

简介

使用Golang编写的基于websocket的聊天程序,支持多房间群聊,公共频道聊天。

功能特性

  • 支持多房间群聊
  • 支持公共频道聊天
  • 心跳检测
  • 显示在线用户列表

主要依赖库

项目使用module管理依赖,下面是主要依赖库

github.com/gorilla/websocket

github.com/gorilla/mux

github.com/holys/initials-avatar

gopkg.in/yaml.v2

github.com/staori/go.uuid

目录结构

├─config            // 配置文件目录
├─resource          // 资源目录
│  ├─assert         // 静态资源目录
│  │  ├─font
│  │  ├─image
│  │  ├─script
│  │  └─style
│  └─template       // 模板文件目录
│     ├─base.html   // 基础模板
│     ├─room.html   
│     └─home.html
├─service           
│  ├─app.go
│  ├─avatar.go
│  ├─client.go
│  ├─helper.go
│  ├─helper_test.go
│  ├─interrupt.go
│  ├─loader.go
│  ├─room.go
│  └─router.go
├─config.yaml        // 应用配置文件
├─README.md            
├─server.go          // 服务启动
└─server_test.go   

运行

// 下载项目
git clone https://www.github.com/muqiuren/go-chat

// 进入项目根目录
cd go-chat

// 检查依赖
go mod tidy

// 启动应用,访问http://localhost:8000
go run server.go

效果

image1 image2 image3

TODO

  • 前端聊天界面
  • 多房间
  • 公共聊天频道
  • 进入离开房间广播
  • 心跳检测
  • 在线用户列表
  • 图灵接入

更多

使用Go编写基于websocket聊天程序详解