重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

go语言消息收发 go语言 gin

GO短信是什么

GO短信加强版是在原GO短信版本上进行全面升级的高级版本,是一款完全免费、界面酷炫、支持气泡式/列表会话界面、支持来信即显弹窗、拥有信息备份/恢复功能、支持安全锁加密/黑名单,支持文件夹管理、拥有丰富个性化设置的android短信应用。 ※ 注意: - 测试版用户请*卸载*测试版,再安装这个正式版。- GO短信加强版可以和GO短信同时存在,只需在老版本的“提醒设置“里把“启用通知”和“启动即显短信窗口”关掉;建议同时保存两者一段时间。- 如果你需要导入GO短信里的设置信息到加强版,只需在“设置“-”GO 短信服务“-”设置信息备份与恢复“中备份(如果你的GO短信没有这些服务,请先更新至GO短信最新版本),然后在GO短信加强版中导入即可。

成都创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元盘龙做网站,已为上家服务,为盘龙各地企业和个人服务,联系电话:028-86922220

- 支持Emoji表情- 支持文件夹管理,里面有收件箱、发件箱、草稿箱和定时信箱,还可以新建加密文件夹,把重要信息复制到文件夹- 手势操作支持, 您可以使用左右滑动的手势操作切换“信息”界面和“文件夹”界面- 支持DIY主题,可在选择DIY主题后在“设置—收件箱个性化设置—更换壁纸”进行壁纸设置- 支持多语言独立安装包(设置—应用程序设置—语言选择)- 聊天式会话界面或Android原生风格界面- 支持使用与下载各式主题(设置—界面效果设置—主题选择)- 支持信息即显弹窗显示、快捷回复- 已支持独立于系统短信之外使用- 自带1x1图标widget和4x2中号widget- 支持个性化设置界面- 支持针对不同联系人自定义界面设置- 支持备份/恢复全部或单个联系人信息,可以是XML备份格式,还能通过email发送至邮箱保存- 支持设置备份与恢复- 支持安全锁、黑名单功能- 支持手势滑动切换页面(设置—界面效果设置—页面切换设置—切换特效)- 针对CDMA网络自动对长信息进行分割- 支持联系人个性化设置(个性化通知、铃声、签名设置)- 支持对联系人、信息/会话内容删除和设置进行备份操作- 支持时间偏差调整功能- 支持按短信时间排序或按收发顺序排序- 支持快速回复- 支持夜间模式- 支持群发短信- 支持重复提醒功能- 支持隐私模式(隐藏通知栏和即显弹窗提示)- 支持联系人按名字和字母搜索功能、按谷歌和GO短信联系人分组功能- 支持facebook头像显示- 短信息按联系人、按内容搜索功能- 联系人排序、选择、分组、查找功能- 丰富的彩信阅读模式,强大的彩信编辑功能- 免费在线节日短信库

Go语言使用NSQ消息队列

重点提示:

这样我们就启动了一个 nsqd 的实例

编写一个消息生产者

nsq_single_product.go

编写一个消息消费者

nsq_single_consumer.go

添加第一个实例

添加第二个实例

消息生产者

nsq_cluster_product.go

消息消费者

nsq_cluster_consumer.go

go语言聊天室实现(七)websocket收消息设置

上一节中,我们为每个连接都创建了一个goroutine来读取其中的消息,现在我们将这个读取消息的方法实现一下。

我们在application目录下新建controllers目录,并在其中创建一个MessageController.go文件。

首先我们新建一个MessageController的结构体,内容如下

这个结构体包括两个内容,一个是我们将连接放在数组之后,返回的索引,另一个是连接本身.

这个是具体的方法。

我们首先设置了一下读消息的大小、超时时间以及超时后需要的操作。

超时时间如果设置为0,那么就是永不超时。之前在这里直接写0,被告知需要传一个time.Time类型的数据。最终谷歌后才得到了这个值time.Time{}为"0001-01-01 00:00:00 +0000 UTC"。

我们将用户手法消息的内容定义为一个结构体,然后将用户的订阅信息的json通过json.unmarshal转换成这个结构体。

之后的switch操作与我们在Swoole中的操作基本雷同,在查询到login之后,调用service中 的login方法来进行注册。

下一节中我们再介绍具体的注册逻辑。

基于go的websocket消息推送的集群实现

目前websocket技术已经很成熟,选型Go语言,当然是为了节省成本以及它强大的高并发性能。我使用的是第三方开源的websocket库即gorilla/websocket。

由于我们线上推送的量不小,推送后端需要部署多节点保持高可用,所以需要自己做集群,具体架构方案如图:

Auth Service:鉴权服务,根据Token验证用户权限。

Collect Service:消息采集服务,负责收集业务系统消息,存入MongoDB后,发送给消息分发服务。

Dispatch Service:消息分发服务,根据路由规则分发至对应消息推送服务节点上。

Push Service:消息推送服务,通过websocket将消息推送给用户。

集群推送的关键点在于,web端与服务端建立长连接之后,具体跟哪个推送节点保持长连接的,如果我们能够找到对应的连接节点,那么我们就可以将消息推送出去。下面讲解一下集群的大致流程:

1. web端用户登录之后,带上token与后端推送服务(Push Service)保持长连接。

2. 推送服务收到连接请求之后,携带token去鉴权服务(Auth Service)验证此token权限,并返回用户ID。

3. 把返回的用户ID与长连接存入本地缓存,保持用户ID与长连接绑定关系。

4. 再将用户ID与本推送节点IP存入redis,建立用户(即长连接)与节点绑定关系,并设置失效时间。

5. 采集服务(Collect Service)收集业务消息,首先存入mongodb,然后将消息透传给分发服务(Dispatch Service)。

6. 分发服务收到消息之后,根据消息体中的用户ID,从redis中获取对应的推送服务节点IP,然后转发给对应的推送节点。

7. 推送服务节点收到消息之后,根据用户ID,从本地缓存中取出对应的长连接,将消息推送给客户端。

其他注意事项:


分享文章:go语言消息收发 go语言 gin
链接分享:http://cqcxhl.com/article/ddopgss.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP