![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
go IM聊天系统
文章平均质量分 57
wwwwwwwwww
BigOrangeSama
这个作者很懒,什么都没留下…
展开
-
百万级并发IM即时消息系统(7)redis和websocket的消息队列
在app.yml中配置好redis之后,可进行下一步操作。原创 2023-09-04 20:10:47 · 316 阅读 · 0 评论 -
百万级并发IM即时消息系统(6)md5加密和注册密码加密
验证的方式是将获取的用户输入的登用用户输入的密码+盐再重新算一遍加密和数据库中存储的加密后password进行比对,如果一致说明密码正确,因为md5的碰撞很小,默认是不同的密码加密不会出现一样的加密字符。:基础pwd加密之后加随机盐再加密得到字串存到数据库。单纯一次md5容易被彩虹表破解。原创 2023-09-03 23:18:41 · 66 阅读 · 0 评论 -
百万级并发IM即时消息系统(5)校验器govalidator
gorm.Model //告诉数据库这个结构体映射一张表,同时数据库操作需要更新里面的几个时间戳Phone string `valid:"matches(^1[3-9]{1}\\d{9}$)"` //正则表达式用于校验号码Email string `valid:"email"` //校验邮箱格式Avatar string //头像。原创 2023-09-03 20:54:51 · 73 阅读 · 0 评论 -
百万级并发IM即时消息系统(4)用户基本CRUD
代码层次还是由低到高:model层数据库操作->service层封装->路由层调用业务1)get方式获取参数context.Query("xxx")2)post方式获取参数context.Request.FormValue("xxx")作用基本同上:可以查询url后的?参数、href超链里?后参数。原创 2023-09-03 18:00:38 · 339 阅读 · 0 评论 -
百万级并发IM即时消息系统(3)配置数据初始化和前后端交互
该文件专门存放一些关键配置,如mysql DNS路径和redis的addr账号密码等。前端指定路由被router包下的路由处理函数接收到,调用service层的业务函数。后期可以创建一个工具包和一些初始化方法,专门用来加载这些配置文件以初始化系统。service层的函数调用model层的函数接收结果并返回给router。创建一个config文件夹以及一个app.yaml配置文件。utils包加载好配置,并提供了一个包外可访问的数据库变量。model层调用数据库操作并返回结果给service层。原创 2023-09-01 20:23:03 · 170 阅读 · 0 评论 -
百万级并发IM即时消息系统(4)Swagger
在启动程序之后访问该接口下面的swagger/index.html就能看到swagger里的一些变量。,就会把注释整合到docs的json和yaml里。在sql初始化函数中加一个logger就行。给函数加完注释之后需要执行。原创 2023-09-02 19:54:51 · 129 阅读 · 0 评论 -
百万级并发IM即时消息系统(2)
2)创建或者更新一张和指定strcut结构一样的表db.AutoMigrate(&models.UserBasic{})5)改db.Model(user).Update("PassWord", "1234")1)连接数据库db, err := gorm.Open(mysql.Open() )6)查db.First(user, 1),查主键为1的user。把服务创建和处理请求单独放在router.app.go下,4)删db.Delete(&product, 1)3)增db.Create(user)原创 2023-09-01 19:06:14 · 249 阅读 · 0 评论 -
百万级并发IM即时消息系统(1)前期准备
Gin是目前golang使用最广泛的Web架构之一。web开发框架,通合api接口、微服务开发,相较于其他框架(iris、 beego)更轻量级和更好的性能。其路由功能很强大提供分组功能,非常适合做api开发。原创 2023-08-31 16:01:51 · 371 阅读 · 0 评论 -
用户通讯系统的简单CS结构
5.协程用一个循环大容量byte切片接收连接传过来的值,conn.Read(buf),3.把接收的内容分成byte切片conn.Write()发送给服务端,进入下一次循环。3)创建goroutine,处理该链接的请求(通常客户端会通过链接发送请求包)2.循环等待客户端连接通过端口发送消息,没有接收到消息那么监听器就阻塞。2)接收客户端的tcp链接,建立客户端和服务器端的链接.2)发送请求数据[终端],接收服务器端返回的结果数据。1.建立服务端端口监听器,接收的信息会从这个端口来。1)建立与服务端的链接。原创 2023-08-30 19:01:52 · 53 阅读 · 0 评论