当前位置: 首页 > news >正文

如何做网站地图视频/关键词seo优化软件

如何做网站地图视频,关键词seo优化软件,mac 网站开发,云南网站建设公司排行SRC: http://www.cnblogs.com/youxilua/p/3141530.html前言实际上,个人感觉,pomelo 目前提供的两个默认sioconnector和hybridconnector 使用的协议并不适合用于做手机推送平台,在pomelo的一份公开ppt里面,有提到过, 网易的消息推送平台是基于pomelo开发的 (一个frontend 支持30…

SRC: http://www.cnblogs.com/youxilua/p/3141530.html


实际上,个人感觉,pomelo 目前提供的两个默认sioconnectorhybridconnector 使用的协议并不适合用于做手机推送平台,在pomelo的一份公开ppt里面,有提到过, 网易的消息推送平台是基于pomelo开发的 (一个frontend 支持30w 长连接,消耗了3g 内存,如果我没记错数据应该是这样),不过,这里用的前端(frontend)实现的是基于MQTT协议,我估计这个基于MQTT协议实现的 frontend,基本不可能开源出来.这里只是说,默认提供的frontend不适合用于构建大型的推送平台(c10m规模的),一般而言(c10k级 别的),个人感觉还是够用的.

为了展示,更多pomelo 的相关特性,可能这里的逻辑业务,与实际有所不同.敬请注意

整个应用的架构图:

Pushapp

  • pomelo@0.4.3

  • android

  • web browser

 

1
2
3
4
5
{    "role": "client/server",    "apikey": "String",    "clientId": "String"}

 

发给web management

 

1
2
3
4
5
{    "code": "Int httpCode ex: 200",    "msg": "String",    "users": "Array 客户端的clientId 值 ex:["android1"] "}

发给android客户端

 

 

1
2
3
4
{    "code": "Int httpCode ex: 200",    "msg": "String"}

 

android:

connector route = sio-connector.entryHandler.enter, 用于把当前客户端加入到推送频道当中

WebManagement:

connector route = hybrid-connector.entryHandler.enter,用于连接服务器.
backend route = pushserver.pushHandler.pushAll, 把消息推送到所有已连接的客户端.

Pomelo 有个特点,就是约定开发,很多地方是约定好的配置,优点是,架构清晰,可读性好,缺点是,需要大量的文档支持,目前而言,pomelo的官方文档做的不好 的地方就是,虽然文档都有了,但是太零散了,分类不清楚,还有就是文档没跟上开发,有时候,你不阅读里面源码根本不知道这个api要传那些参数.

由于pomelo 0.3 以后新增了一个新的connector:hybridconnector,支持socket和websocket,使用二进制通讯协议,但是除了,网页 js版本和c 客户端实现了这个connector,其他客户端均还没实现,所以,我们还需要一个兼容android 客户端的connector: siocnnector,关于两个connector 具体比较,以后有空重写这篇的时候,暂时,你只要知道,这个两个connector,一个基于socket.io,一个基于socket和websocket 即可.

app.js 由于我们用到了两个不同的connector,所以要在app.js写上:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 支持 socket.ioapp.configure('production|development', 'sio-connector', function(){app.set('connectorConfig',{connector : pomelo.connectors.sioconnector});
});//支持 websocket 和 socketapp.configure('production|development', 'hybrid-connector', function(){app.set('connectorConfig',{connector : pomelo.connectors.hybridconnector,heartbeat : 300,useDict: true,useProtobuf: true});
});

经过这样的配置,我们就能够使用两个不同的connector了.

 

用pomelo 进行消息的推送,非常便捷,由于,我们现在只关注推消息给全部客户端,那样就非常简单了.

推送流程:

  • 根据uuid 把 android 客户端添加到各自的推送频道当中.

  • web 端根据uuid 把消息推送的全部在线的客户端.

为了教学的方便,这里的uuid 硬编码为: xxx-xx--xx-xx

把客户端添加到相应的channel

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//把客户端添加到推送列表中PushRemote.prototype.add = function(uid, role, sid, channelName, cb){    var channel = this.channelService.getChannel(channelName, true);    if(role === 'server'){		//web 服务端直接返回用户列表cb(null ,this.getUsers(channelName));}else {        if(!!channel){channel.add(uid ,sid);}        //uuid 告诉给服务端onAdd 事件// [{uid: userId, sid: frontendServerId}]var server = [{uid: channelName, sid: sid}];       this.channelService.pushMessageByUids('onAdd', {msg: "add ok", users:this.getUsers(channelName)},server, function(err){           if(err){console.log(err);               return;}});}
};

Frontend 利用rpc 调用pushserver 添加客户端到相应频道的方法.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
 //sid 统一为web managment 所在的 frontend server.this.app.rpc.pushserver.pushRemote.add(session, uid,role, 'connector-server-client', uuid, function(err, users){        if(err){console.log(err);            return;}        if(users){next(null, {code: 200, msg: 'push server is ok.', users: users});}else{next(null,{code: 200, msg: "add ok", users: users});}});

web 管理端调用消息推送

 

 

1
2
3
4
5
6
7
8
9
10
11
12
Handler.prototype.pushAll = function(msg, session, next){    var pushMsg = this.channelService.getChannel(msg.apikey, false);pushMsg.pushMessage('onMsg',{msg: msg.msg}, function(err){       if(err){console.log(err);} else{console.log('push ok');next(null, {code: 200, msg: 'push is ok.'});}});};

以上就是主要客户端如何加入到推送队列的代码,以及web 管理端进行消息推送的主要代码,是不是很简单! 完整代码可以参阅我的github https://github.com/youxiachai

 

有一点要注意的,如果pomelo 项目要部署到外网或者局域网,frontend 的host 要填写当前host 主机的ip 地址

例如:

 

1
2
3
"connector": [{"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientPort": 3010, "frontend": true}]

部署到某台服务器,需要修改

 

 

1
2
3
"connector": [{"id": "connector-server-1", "host": "192.168.1.107", "port": 3150, "clientPort": 3010, "frontend": true}]

客户端访问相应的host 的地址.

 

客户端和服务端的github 地址: https://github.com/youxiachai/pomelo-pushServer-Demo

如果,你现在对pomelo感兴趣的话,你可以看下我写的pomelo 的系列教程(因为还没写好所以暂时只发布在我的博客)暂时一共四篇.基本涵盖了pomelo 大部分基本知识点.

http://blog.gfdsa.net/tags/pomelo/


http://www.lbrq.cn/news/1034569.html

相关文章:

  • 如何查网站空间/漂亮的网页设计
  • 做网站 要学 什么语言/seo搜索引擎优化课后答案
  • 中山蚂蚁网站开发/百度推广平台有哪些
  • 工程建设标准最新查询网站/小红书kol推广
  • 信息发布的网站怎么做/营业推广策略有哪些
  • 做网站用微软雅黑侵权吗/视频营销模式有哪些
  • 德令哈网站建设公司/自主建站
  • 网站ppt怎么做/什么是网络营销公司
  • 做宴会有哪些素材网站/郑州互联网公司排名
  • 万网域名指向网站/百度网站客服
  • 杭州市规划建设委员会网站/大概需要多少钱
  • 中国政府网站建设与应用/360网站关键词排名优化
  • 务川县住房和城乡建设局网站/百度云官网首页
  • 网站htm建设/seo实战教程
  • 微店网页版登录入口/seo网站优化工具大全
  • wordpress demo data/汕头自动seo
  • 中国纪检监察网站奶奶做女工/网站优化外包找谁
  • 恶搞网站怎么做/网站怎么收录
  • 新密网站/软文营销的案例
  • 东海县建设局网站/成都seo达人
  • 东营建设信息网站/谷歌seo服务
  • 微信公众号建设公司/安卓优化大师官网下载
  • 全响应式网站用什么做的/搜索引擎营销的主要模式有哪些
  • 吉林省住房和城乡建设厅网站6/外链怎么打开
  • 网站出现风险如何处理/seo双标题软件
  • 做网站怎样做才有百度快照/app开发流程
  • 网页设计旅游网站前言/快速学电脑培训班
  • 网站空间价格/郑州网站建设最便宜
  • 网站推广怎么做引流/市场监督管理局
  • 网站qq启动链接怎么做/南京疫情最新消息
  • C++ 面向对象四大特性:面试深度解析
  • SQL注入学习笔记
  • Pytest项目_day13(usefixture方法、params、ids)
  • 【后端】Spring @Resource和@Autowired的用法和区别
  • 算法打卡力扣第88题:合并两个有序数组(easy)
  • 谷歌ADK接入文件操作MCP