Go语言实现的轻量级IM项目

使用 go 实现的微型服务器

项目地址:https://github.com/chaggle/go-im

V0.1 :建立基础的 main.go server.go,相应功能如下

main 功能主要为创建服务器以及启动服务器

server 功能有:

1、创建 server 对象

2、启动 Server 服务(TCP socket 套接字)

3、处理链接的业务

V0.2 :用户上线功能

user 功能新增

1、创建 user 对象

2、监听每个 user 对应的 channel 的消息

server 新增功能

1、新增 OnlineMap 与 Message 属性

2、在处理客户端上线的 Handler 创建并添加用户(使用到 OS 中的同步 Lock )

3、新增广播消息方法以及监听广播消息的 channel 方法

V0.3 :用户消息广播机制完善

server 新增功能

1、完善 handle 模块处处理业务的方法,启动一个针对与当前客户端的读 goroutine

V0.4 :用户业务层封装

对于用户层业务的层次化、模块化

server 中的 user 业务进行迁移

1、server 关联

2、新增 Online、Offline、Domessage 方法

V0.5 :查询用户名以及用户名修改

user 新增两个功能,

1、用户名查询的功能

2、用户名修改的功能,保证每个用户名唯一

V0.6 :超时强制下线以及私聊功能

user 新增两个功能,

1、设置定时器,超时强制剔除,发消息代表活跃,长时间不发消息代表超时,即强制关闭用户连接

2、私聊功能,通过获取用户名队列中的用户名,来向用户发起私聊

V1.0 、v1.1 :客户端基本功能

新增 client 客户端,当然并非 GUI 界面版本,也可以使用带 GUI 界面版本,满足通信协议即可

1、连接建立功能、命令行解析功能

2、客户端菜单功能的预写

V1.2 :客户端的相应基本请求

client 新增

1、用户名修改请求,通过 io.copy() 阻塞监听的方式进行回显输出

2、用户进入公聊模式,进行消息的广播与退出公聊模式

3、用户进行私聊模式,选择用户功能封装以及单独对其发送消息


Go语言实现的轻量级IM项目
https://chaggle.github.io/2022/01/04/go/go-im/
作者
chaggle
发布于
2022年1月4日
许可协议