• Stars
    star
    126
  • Rank 284,543 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

gin+websocket+mongodb实现 IM 即时聊天系统,基于WS连接的即时聊天,支持单聊,在线回复以及历史记录查询

gin-chat-demo

gin+websocket+mongodb实现 IM 即时聊天系统

这个项目是基于WebSocket + MongoDB + MySQL + Redis。 业务逻辑很简单,只是两人的聊天。

  • MySQL 用来存储用户基本信息
  • MongoDB 用来存放用户聊天信息
  • Redis 用来存储处理过期信息

项目教程

B站:https://www.bilibili.com/video/BV1BP4y1H7gV

博客:https://blog.csdn.net/weixin_45304503/article/details/121787022

项目结构

gin-chat-demo/
├── cache
├── conf
├── e
├── model
├── router
└── service
  • cache : 放置redis配置
  • conf : 放置配置文件
  • model : 数据库模型
  • pkg : 防止一些错误码
  • router : 路由模块
  • service :服务模块

项目功能

  • 两人通信
  • 在线、不在线应答
  • 查看历史聊天记录

配置文件

  • conf/config.ini
#debug开发模式,release生产模式
[service]
AppMode = debug
HttpPort = :3000 
# 运行端口号 3000端口

[mysql]
Db = mysql
DbHost = "" 
# mysql的ip地址
DbPort = ""
# mysql的端口号,默认3306
DbUser = ""
# mysql user
DbPassWord = ""
# mysql password
DbName = ""
# 数据库名字

[redis]
RedisDb = ""
# redis 名字
RedisAddr = ""
# redis 地址
RedisPw = ""
# redis 密码
RedisDbName = ""
# redis 数据库名

[MongoDB]
MongoDBName =  ""
MongoDBAddr = ""
MongoDBPwd = ""
MongoDBPort = ""

项目运行

  • 下载依赖
go mod tidy
  • 执行
go run main.go

演示

  • 测试http连接

在这里插入图片描述

  • 进行ws连接,连接服务器

在这里插入图片描述

  • 当id=1上线,但是id=2没上线的时候发送消息

在这里插入图片描述

  • 当id=2上线之后

在这里插入图片描述

  • 再次发消息,就是在线应答了

在这里插入图片描述

  • 这边就实时接受到消息了

在这里插入图片描述

  • 获取历史信息

在这里插入图片描述

More Repositories

1

gin-mall

基于 gin+gorm+redis+mysql 读写分离的电子商城,包括 JWT 鉴权,CORS跨域,AES 对称加密,引入ELK体系方便日志查看,jaeger进行trace查看,skywalking进行检测,使用docker容器化部署
Go
523
star
2

TodoList

Gin+Gorm+Redis+Swagger 基于 RESTful API 规范搭建备忘录,包括redis缓存,swagger文档,docker部署
Go
210
star
3

grpc-todoList

gin+grpc+gorm+etcd+mysql 的备忘录功能。Gin作为HTTP的web框架,gRPC作为RPC框架,ETCD作为服务注册与发现。
Go
206
star
4

micro-todoList

Go语言微服务实战,go-micro+gin+gorm+rabbitMQ 构造简单备忘录,包括ETCD作为服务发现,JWT鉴权,降级熔断等等
Go
149
star
5

Golang-Learning

以本人为例,学习Go语言的路线。我也是从20年10月开始接触go语言,和大家分享一下我的学习路程。
Go
120
star
6

tangseng

Tangseng search engine including full text search and vector search base on golang. 基于go语言的搜索引擎,信息检索系统
Go
110
star
7

Golang-Interview

记录实习、秋招中大型公司的Go语言面经,包括字节跳动,腾讯,滴滴,百度等等...内容涉及Go的基础语法以及底层,数据结构与算法,操作系统,数据库,计算机网络,计算机组成原理等等.....
57
star
8

BiliBili

Gin框架实现B站,Gin+Gorm 实现一个视频弹幕网站
Go
36
star
9

Go-SecKill

Gin+Gorm+Redis+ETCD的秒杀系统,列举出一系列并发情况下数据竞争问题的解决方案。
Go
27
star
10

TeenStudy

青年大学习一键提醒、福建省,安徽省,上海市都有
Python
26
star
11

gesture-recognizion

YOLO+ResNet的手势识别,YOLO进行目标识别,ResNet进行特征提取
Python
25
star
12

Go-Spider-Demo

使用go语言进行爬虫的小案例
Go
25
star
13

Lottery

以太坊智能合约实战 —— FanOne彩票网
Smarty
22
star
14

Car-Manage-System

Gin + Gorm 实现车辆信息联络平台
Go
18
star
15

BiliBili-Word

BiliBili 科普文案
11
star
16

react-mall

gin-mall商城前端
TypeScript
11
star
17

react-todolist

typescript + react + antd + axios + redux 进行简单备忘录的构建
JavaScript
10
star
18

go-plus-demo

使用go+进行爬虫并数据处理
Go
6
star
19

FaceYOLOv5

基于YOLOv5的人脸检测
Python
6
star
20

Car-Mini-Program

车辆信息联络平台的小程序端
JavaScript
6
star
21

secret

Provide the interface of symmetric encryption AES/DES/3DES and asymmetric encryption RSA, making your sensitive data easier to desensitize and store.( 提供 对称加密 AES/DES/3DES 以及非对称加密 RSA 的上层封装接口,让您的敏感数据更加容易脱敏并存储 )
Go
6
star
22

go-html2image

HTML to image tool based on golang
Go
5
star
23

Net-Demo

Go 语言实现TCP,UDP通信等等
Go
5
star
24

Python_Spider_demo

Python
5
star
25

fgen

基于 gorm 根据数据库自动生成 curd 模版
Go
4
star
26

NumpyMnist

纯Numpy实现手写数字识别
Jupyter Notebook
4
star
27

ML-Projects

记录机器学习的笔记
Python
4
star
28

Car-Yolo-FasterRcnn

Python
4
star
29

Flask_pandown

this is a wangpan of flask eduction
Python
4
star
30

PlantsVsZooms

Python
4
star
31

WxSnakeRush

JavaScript
4
star
32

mq-server

rabbitmq 服务端
Go
4
star
33

gRPC-Demo-Test

关于gRPC的一些小demo
Go
4
star
34

Gin-Seckill

基于Gin框架的商品秒杀系统
4
star
35

CocaineCong

4
star
36

FaceYOLOv3

基于YOLOv3的人脸检测算法
Python
4
star
37

react-tangseng

搜索引擎前端
JavaScript
4
star
38

eslogrus

an es hook base golang for logrus. 一个基于go语言的es钩子,为了能把logrus的日志送到es
Go
3
star
39

MIT6.824

for mit 6.824 knowledge learning
3
star
40

BiliBili-Code

b站的demo代码
HTML
2
star
41

mysql2other

Sync MySQL data into elasticsearch
Go
2
star
42

ChatRoom

使用go写的一个聊天室
JavaScript
1
star
43

gosin

kv store
1
star
44

fenbi

Kotlin
1
star
45

react-todolist-js

JavaScript
1
star