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

Python014

基于go的websocket消息推送的集群实现,第1张

目前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,从本地缓存中取出对应的长连接,将消息推送给客户端。

其他注意事项:

昨日逛 github 发现之前 star 的 repo wechat

最近学习 Go 于是打算重新实现一下公众号点歌功能,上次玩已经是几年前的事情了

主要讲讲实现根据不同的文本消息进行

之前 一般根据前面的词进行匹配

这样子虽然比较简单,但是没有办法实现比较自定义的配置,例如 搜索愚者第2页,用上述方式可能比较难以表达

于是决定使用 路由 方式进行定义,虽然降低了使用方便程度(hh),但是极大提高对资源描述的方便性

公众号服务随时关闭,仅用于学习交流

问题一:微信推送消息怎么编辑制作 5分 公众号么?认证了么?微信有很多漏洞感觉,以前编辑的时候老是问出题,而且各种办法都试了!你先百度微信公众平台登陆。我好久没编辑了・・・・・・挺好用的一款软件,图片上长宽要注意下,不然会变形。文字最好是在Word设置好格式,然后粘进去。

问题二:自己怎样制作微信图文并茂的文章 微信公众平台发布图文消息、活动消息教程,很多网友针对微信收到的一些图文信息不知道是怎么发的,经常来问我们,今天给大家整理一份关于微信图文信息、活动信息的区别及发送方法。

方法/步骤

一、单条图文信息:

图文信息是将你的网站内容推送给用户,在点击查看全文的时候即可连接至对应的网页。

图文信息发送前首先要上传图文信息里面的素材文件,然后进入单挑图文信息--新建单条图文信息,按照下图将对应的信息填入,其中地址为用户点击查看全文时进入的网址。

图一如下:用户收到的图文信息。

图二如下:用户点击查看全文进入的页面。

二、活动信息:

相对图文信息来说,活动信息就比较简单了,设定的方法跟图文信息一样。但是由于是活动信息,所以腾讯微信官网对正文字数做了800字的限制,活动信息为短暂通知信息,可以看以下图示。

活动消息设置如下:

图三如下:用户收到活动消息界面

图四如下:用户点击查看全文进入的活动消息通知界面。

如果有网友说我们没有网站,又不想发送活动消息被字数限制,怎么发送多内容信息呢?目前也可以通过投稿发送到微信聚,然后将对应的手机浏览网址推送给用户,即可让用户浏览到整篇文章内容。

问题三:怎样用word做微信推送 微信有官方的API开发文档,如果有公共账号的,登录进去就可以看到API开发文档,微信目前支持:消息推送目前支持:文本消息、图片消息、地理位置消息、链接消息、事件推送 消息回复支持:回复文本消息、回复音乐消息、回复图文消息;你可以想办法注册一个公共账号,然后边开发,边测试效果。

问题四:怎样在微信公众平台里制作像这种的推送内容 登录公众号后进入到素材管理-->新建图文-->点左边的图文的加号就可以了

问题五:微信推送怎么做的很好看 一般是在素材里面做图文消息,多图文消息的,图文并茂的话感觉内容就丰富起来哦了!

问题六:微信推送怎么做 推送到每一个微信的手机上这个是不可能实现的,但是在开通公众账号以后,把信息推送到关注你的用户上倒是可以做到,只要在上面编辑你想要发送的图文,就可以群发给“关注”这个公众账号的所有微信号,但是这个就要考虑好怎样把你的公众账号推出去。

问题七:怎么制作微信上图文并茂的含图片文章? 我没用过微信。如果在电脑上,不用PS也行,可用Word 点插入- 图片- 文件,找到你需要的图片。。。写上文字就行了。

问题八:怎么制作图文微信 微信公众平台发布图文消息、活动消息教程,很多网友针对微信收到的一些图文信息不知道是怎么发的,经常来问我们,今天给大家整理一份关于微信图文信息、活动信息的区别及发送方法。

方法/步骤

一、单条图文信息:

图文信息是将你的网站内容推送给用户,在点击查看全文的时候即可连接至对应的网页。

图文信息发送前首先要上传图文信息里面的素材文件,然后进入单挑图文信息--新建单条图文信息,按照下图将对应的信息填入,其中地址为用户点击查看全文时进入的网址。

图一如下:用户收到的图文信息。

图二如下:用户点击查看全文进入的页面。

二、活动信息:

相对图文信息来说,活动信息就比较简单了,设定的方法跟图文信息一样。但是由于是活动信息,所以腾讯微信官网对正文字数做了800字的限制,活动信息为短暂通知信息,可以看以下图示。

活动消息设置如下:

图三如下:用户收到活动消息界面

图四如下:用户点击查看全文进入的活动消息通知界面。

如果有网友说我们没有网站,又不想发送活动消息被字数限制,怎么发送多内容信息呢?目前也可以通过投稿发送到微信聚,然后将对应的手机浏览网址推送给用户,即可让用户浏览到整篇文章内容。

问题九:如何做好微信内容 在微信即将突破4亿用户的时候,他们看到了更多地方网站布局微信的步伐,但如何利用微信促进自身营销和商业转化,是站长们需要探索的新命题。做媒体吗?腾讯团队对于微信的定位似乎不在于此,很多定位媒体的公众账号,做着做着就迷失了,积累了几万的用户,却不知道下一步该怎么办!反而定位于本地生活消费的账号更容易突围。

通过开放API接口,合肥全攻略实现了基于商家名称,地理位置等调取后台数据自动应答功能,自助查询天气、公交、影讯、航班、周边美食等,起初的这些功能,让合肥全攻略积累了自己的第一批用户,而在随后的运营过程中发现,这类初级的工具查询功能并不能满足网友的需求,他们需要更为精细的生活消费指导。

《便民信息》、《人气新店》、《专属优惠》、《精选团购》栏目便是在这样的需求下应运而生,精选最优质的内容适时推送。如“合肥各商场wifi密码汇总”、“5月合肥精彩活动推荐”等,至今点击仍排名前十,这些需求为后续的商业开发储蓄了大量的空间。

但是,存在一个缺点,内容总是最容易被复制,你有的,别人也可以有,这并不能成为被网友口碑相传的东西。如何让网友舍不得离开你呢,在合肥全攻略的布局中,电子会员卡被放到了一个重要的位置。

目前,合肥全攻略有500多家的会员合作商家,只要关注合肥全攻略,回复商家名称,即可享受专属优惠,被带在身边的电子会员卡,随时随地都可使用,极大的方便了网友,同时借助500个线下推广渠道,进一步提升用户数量。

另外合肥全攻略还有个优势就是做的早,当你在微信添加朋友搜索:合肥 这个关键词就可以发现在排在首位,这个就能够带来很多自然的用户增长,对于推广非常有价值。

用户在哪里,推广就到哪里!

社区、微博、微信,无论哪种平台,本质都是用户!运营固然重要,技术也可以实现很多华丽的功能,但没有用户,一切都是空谈,没有用户便没有价值。

用户从哪来?微信获取用户的成本并不低,相比微博来说难度更大。合肥全攻略的订阅用户成本平均在1-3块钱,越往后,这个成本将会越高,先入为主迅速开拓订阅用户渠道显得尤为重要。

经过摸索,获取用户的方式目前有以下几种:

1、自有用户转化

依托本地社区,通过平台广告、活动结合进行推广。比如活动通知、会议营销、活动投票,提前匹配好关键词内容,通过关注微信公众号获取会议内容,活动流程,建立圈子便于及时和活动主办方对接。

2、活动运营

(1)、投票带来的效果比预想中要好,前提是有不断创新的活动思路和足够吸引人的礼品!

儿歌节当天,合肥全攻略发起了“儿歌比赛活动”,参赛形式非常简单,对着微信唱歌即可,当天晚上吸引了300多人参与活动;微笑节的最美笑脸活动用同样的方式,也在当天晚上吸引了500多人发布真人秀图片,且利用自身开发的系统,让所有图片实时展现,网友可随时查看并用“点赞”的方式进行投票,第一名获得者发动了身边近100个朋友关注合肥全攻略为自己投票。

(2)、送福利的活动不间断。合肥全攻略每周至少发起1-2场活动,如每周送电影票,除此之外,合肥每场演唱会全攻略都会送票,带网友参观新桥机场等等,让网友觉得账号“有利可图”,有期待感!

《钢铁侠3》上映,合肥全攻略拿出资源,转发朋友圈即有机会免费观影;罗大佑演唱会拿出1680元的贵宾票进一步 *** 。

(3)、设置抽奖活动,进行病毒扩散。放低抽奖门槛,所有人都可以参加,如果你获了奖,是不是会赶快告诉身边的人都来参与,抽奖的目的就在于此。

3、微博、QQ空间、人人网、帖吧等线上推广方式

利用热会热点,爆笑段子,实......>>

问题十:怎么制作出类似这样的微信推送。一定要有公众号吗 公众号啊 其实开公众号也挺方便的