### 简介
使用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](https://github.com/muqiuren/go-chat/blob/master/resource/assert/image/1.png)
![image2](https://github.com/muqiuren/go-chat/blob/master/resource/assert/image/2.png)
![image3](https://github.com/muqiuren/go-chat/blob/master/resource/assert/image/3.png)
### TODO
- [x] 前端聊天界面
- [x] 多房间
- [x] 公共聊天频道
- [x] 进入离开房间广播
- [x] 心跳检测
- [x] 在线用户列表
- [ ] 图灵接入
### 更多
[使用Go编写基于websocket聊天程序详解](https://myblog.hatchblog.cn/article-23.html)
没有合适的资源?快使用搜索试试~ 我知道了~
使用Go编写基于websocket的多房间聊天程序.zip
共49个文件
go:12个
png:6个
gif:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 182 浏览量
2024-05-24
11:02:41
上传
评论
收藏 8.11MB ZIP 举报
温馨提示
使用Go编写基于websocket的多房间聊天程序Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
资源推荐
资源详情
资源评论
收起资源包目录
使用Go编写基于websocket的多房间聊天程序.zip (49个子文件)
content
server_test.go 216B
go.mod 527B
go.sum 9KB
resource
template
home.html 1KB
room.html 2KB
base.html 5KB
assert
font
fontawesome-webfont.eot 162KB
fontawesome-webfont.woff 96KB
fontawesome-webfont.woff2 75KB
fontawesome-webfont.svg 434KB
fontawesome-webfont.ttf 162KB
Hiragino_Sans_GB_W3.ttf 11.23MB
image
loading-2.gif 2KB
3.png 56KB
loading-1.gif 701B
loading-0.gif 6KB
1.png 146KB
timg.jpg 7KB
icon-ext.png 6KB
ajax-loader.gif 4KB
cover.jpg 39KB
window-bg.jpg 17KB
avatar.jpg 23KB
icon.png 11KB
2.png 204KB
man-default.png 58KB
style
style.css 4KB
font-awesome.min.css 30KB
layer.css 14KB
base.css 8KB
script
particles.min.js 23KB
app.js 2KB
jquery-2.2.3.min.js 84KB
layer.js 19KB
config.yaml 780B
service
app.go 2KB
helper_test.go 1KB
loader.go 756B
interrupt.go 553B
avatar.go 692B
helper.go 1KB
router.go 870B
client.go 8KB
room.go 3KB
server.go 599B
README-en.md 2KB
.gitignore 5B
README.md 2KB
config
app.go 738B
共 49 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3911
- 资源: 7441
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高级系统架构设计师下午试题模拟题6套试题.pdf
- 科技公司员工转正评估表.xlsx
- 微观企业劳动力生产率数据(1999-2023年).txt
- CCF大数据竞赛-垃圾短信基于文本内容的识别项目源码(高分项目)
- Linux环境下Nginx服务器的源码安装与自动启动配置指南
- 【Unity 插件】DLSS - Upscaling for Unity 将低分辨率图像提升为高分辨率图像,接近或超越原生分辨率
- 基于角色访问控制的Linux安全模块+项目源码+文档说明
- 基于uniapp构建的顺风车、约车、拼车、通勤、滴滴微信小程序(源码+文档说明)
- 【Unity 插件】Invector FSM AI Template 易用的 AI 模板, 轻松实现敌人的巡逻、追击、攻击等动作
- 文本数据可视化tocsv.csv
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功