Go语言打造高并发web即时聊天(IM)应用
付大大丶
这个作者很懒,什么都没留下…
展开
-
25、实现群聊
方案二、 map<群id> 优势是找用户ID非常快 劣势是发送信息时需要根据userid获取node,锁的频次太高。分析群id,找到加了这个群的用户,把消息发送过去 方案一、 map 优势是锁的频次低 劣势是要轮训全部map。1、当用户接入的时候初始化groupset。2、当用户加入群的时候刷新groupset。1、还需实现建群,加群的业务逻辑。原创 2023-07-22 08:41:05 · 137 阅读 · 0 评论 -
24、实现语音和视频支持
【代码】24、实现语音和视频支持。原创 2023-07-22 08:35:45 · 109 阅读 · 0 评论 -
22、实现发送文字、表情包
弹出一个窗口, 选择按钮,进行录音操作,获得录音文件 上传到服务器, 获得一个连接地址 调用 sendaudiomsg方法 开始发送流程。弹出一个窗口, 选择按钮,选择视频 上传到服务器, 获得一个连接地址 调用 sendaudiomsg方法 开始发送流程。弹出一个窗口, 选择图片,上传到服务器 获得一个连接地址 调用 sendpicmsg方法开始发送流程。弹出一个窗口, 选择图片获得一个连接地址 调用 sendpicmsg方法开始发送流程。前端所有的操作都在拼接数据 如何拼接?二、 前端处理核心方法。原创 2023-07-22 08:23:49 · 434 阅读 · 0 评论 -
21、设计可以无限扩张业务场景的消息通讯结构
里面携带 谁发的-userid 要发给谁-dstid 这个消息有什么用-cmd 消息怎么展示-media 消息内容是什么-(url,amout,pic,content等)用户2向用户3发送文字消息hello。前端通过websocket发送。json格式的字符串。原创 2023-07-22 08:15:31 · 81 阅读 · 0 评论 -
20、接入websocket并实现最基础的文字通讯
首先下载webscoket相关包go get -u github.com/golang/net/webscoket。websocket包下载指令go get github.com/gorilla/websocket。下载 第三方集合包go get -u gopkg.in/fatih/set.v0。2.在main的go中定义一个路由,形成映射关系。1.新建controller/chat.go。原创 2023-07-18 09:41:08 · 222 阅读 · 0 评论 -
19、显示好友列表和群
在service/init.go中自动同步模型的结构体和数居库的表结构生成映射的关系。service下contact.go自动添加好友业务逻辑。封装第9行代码的util.Bind方法。args目录下的contact.go。会发现调用的一些包没有,则进行扩展。原创 2023-07-18 01:03:41 · 226 阅读 · 0 评论 -
18、接入聊天主页面
控制器里实现对service层代码的调用及逻辑处理。运行完对结果进行测试,登录成功进行弹框url地址。修改成功之后进行跳转页面,直接进行跳转。用户名密码输入正确,跳转效果图。前端对返回的结果集进行拼接。查看接口相应的返回数据。获得id和token。原创 2023-07-18 00:54:49 · 69 阅读 · 0 评论 -
17、mui+vue实现的聊天界面展示和说明
把一些公共的视图独立出来,然后引入模版的名字,整个应用看起来更简洁了。原创 2023-07-18 00:40:43 · 192 阅读 · 0 评论 -
16、基于MVC思想的通用应用程序架构
至此,一套通用的mvc结构就已经封装好了。原创 2023-07-18 00:27:22 · 60 阅读 · 0 评论 -
15、以注册为例展示对service层的调用
需要使用以下解决方案,以下方法可以方法可以自动创建表结构。发现返回的结果集没有token,进行处理下token。启动服务,如果服务启动失败,则按照以下步骤进行排错。在main.go中定义注册路由和注册方法。如果启动服务报以下错误,说明没有表结构。之后在请求就可以得到一些相关信息。再次运行发现token已经存在了。原创 2023-07-18 00:16:15 · 80 阅读 · 0 评论 -
14、service层实现注册逻辑
创建用户service。原创 2023-07-17 23:32:00 · 106 阅读 · 0 评论 -
13、使用xorm操作数据库---建立用户模型&数据库增删改查基本API
新建model层的user文件定义用户结构体//用户id//手机号 唯一的//用户密码 f(plainpwd+salt),MD5//头像//性别//昵称// 随机数//是否在线//前端用户登录鉴权 chat?//统计每天用户增量时间在模型层定义性别常量及使用三、定义服务层服务层service,专门用来存放数据库业务服务的,如:注册、登录,CURD相关API//三、定义和业务相关的服务服务层service,专门用来存放数据库业务服务的,如注册、登录。原创 2023-07-17 22:26:54 · 256 阅读 · 0 评论 -
12、使用xorm操作数据库---数据库初始化
运行一下,会发现一个报错,这是什么原因呢。在来启动一下,数据库初始化启动成功。原创 2023-07-17 23:39:08 · 192 阅读 · 0 评论 -
11、懒人必备20行代码实现全部模板页面自动渲染并接入
思考一下, 现在只是两个页面都这么多代码,那想一想有没有一劳永逸的办法呢?而且每次运行代码的内容基本上都差不多。可不可以把这些共同代码抽象提炼出共同的方法里呢?新建一个test文件测试一下是否好使,记得重启,后续没有修改main.go的代码,看一下是否可以生效。答案是肯定的,接下来给大家展示一个 万能的模板渲染函数。运行发现没有任何问题,能够渲染成功。原创 2023-07-17 22:15:35 · 147 阅读 · 0 评论 -
10、以登录为例展示templete模板渲染
定义模版,标识后端渲染的视图。定义可以允许访问的模版。原创 2023-07-17 22:06:16 · 45 阅读 · 0 评论 -
9、实现页面展示及指定资源文件支持
经测试,通过命令行可以直接报漏出代码,如果main.go是敏感的代码,则不安全,那应该怎么办呢?上面的动态文件404,下面的静态文件内容正常输出,说明成功了。因为没有提供静态文件的支持,接下来编写提供静态资源支持的代码。运行服务,发现页面未找到,这是为什么呢。提供指定目录的静态文件支持。原创 2023-07-17 21:42:11 · 42 阅读 · 0 评论 -
8、代码结构优化
添加omitempty属性,接口失败时不返回data。原创 2023-07-17 21:21:41 · 64 阅读 · 0 评论 -
7、登陆简单逻辑介绍及实现
支持10万人同时在线,Go语言打造高并发web即时聊天(IM)应用原创 2023-07-17 21:01:04 · 208 阅读 · 0 评论