之前讲述过多路复用实现单服百万级别RPS吞吐,但在文中有一点是没有说的就是消息IO合并,如果缺少了消息IO合并即使怎样多路复用也很难达到百万级别的请求响毕竟所有应用层面的网络IO读写都是非常损耗性能的(需要硬件配置很高的服务器).这一章主要讲述的是IO合并的应用,并通过这个特性实现普通单服务千万级别的消息推送测试. 什么是消息IO合并 所谓的消息IO合并即是由原来一个消息对应一个网络读写设计成多个消息共享一个网络读写.那这样的设计到底会带来多大的性能提升,最简单的对比场就是每次执行1条SQL执行…
前言 socket.io: 包含对websocket的封装,可实现服务端和客户端之前的通信.详情见官网(虽然是英文文档,但还是通俗易懂).Notification: Html5新特性,用于浏览器的桌面通知,只有部分浏览器支持.通过nodejs+Socket.io+Notification实现服务端往浏览器客户端发送自定义消息.若有问题可加群264591039与我讨论.转载请注明出处!原文链接:https://yezihaohao.github.io/2017/02/20/Socket-io-No…
Hybrid App越来越火,Ionic的框架也逐渐被更多的人熟知. 在mobile app中,消息推送是很必要的一个功能. 国内很多ionic应用的推送都是用的极光推送,最近研究了一下Ionic自己做的推送,由于它自己官方文档不是很详细并且基于很多假设(假设读者熟悉Apple Developer Center/熟悉使用Xcode/熟悉iOS&Android调试),因此初学者读起来就会遇到很多坑,我花了几天的时间填补了一些坑,鉴于涉及方面较多,我画了一张图来展示“基于ionic.io平台的ion…
用户访问Web站点的过程是基于HTTP协议的,而HTTP协议的工作模式是:请求-响应,客户端发出访问请求,服务器端以资源数据响应请求. 也就是说,服务器端始终是被动的,即使服务器端的资源数据发生变化,如果没有来自客户端的请求,用户就不会看到这些变化. 这种模式是不适合某些应用场景的,比如在社交网络用户需要近乎实时地知道其他用户最新的信息.对于普通站点来说, 请求-响应模式可以满足绝大多数的功能需求,但总有某些功能我们希望能够为用户提供实时消息的体验. 为解决这个问题,有两种方案可以选择: 仍旧使…
精准推送是移动端产品留存阶段的主要运营手段,精准推送常常会与用户画像紧密结合,针对用户的喜好.画像,采用不同策略,但基于用户所属区域推送消息却很难实现.目前市面上大多数第三方消息推送服务商,在系统未深度定制的情况下,通常不支持将推送人群范围精确到某个商圈或较小的区域,而地理围栏技术可以很好地弥补这一点.地理围栏就是用一个虚拟的栅栏围出一个虚拟地理边界,当手机进入.离开或在这个围起来的特定地理区域内活动时,手机可以自动接收通知和警告消息.将地理围栏和消息推送相结合,即可实现对特定区域人群的精准消息…
引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主要为后期BI软件,CRM图标系统使用nodejs socket做铺垫.主要实现的是一个分析表图的推送. socketio.io 代码库以及官网 https://github.com/socketio/socket.io http://socket.io/ 使用redis来实现集群读写 消息 (采用订…
socket.io是一个websocket库,包含客户端的js和服务端的node.js,可以在不同浏览器和移动设备上构建实时应用. 一.安装 socket.io npm install socket.io 二.通过socket.io创建一个简单应用 const http = require('http'); const path = require('path'); const express = require('express'); //创建一个应用,注意app其实就是一个函数,类似func…
前面第六章我们使用的是direct直连模式来进行消息投递和分发.本章将介绍如何使用fanout模式将消息推送到多个队列. 有时我们会遇到这样的情况,多个功能模块都希望得到完整的消息数据.例如一个log的消息,一个我们希望输出在屏幕上实时监控,另外一个用户持久化日志.这时就可以使用fanout模式.fanout模式模式不像direct模式通过routingkey来进行匹配,而是会把消息发送到所以的已经绑定的队列中. 新建FanoutProduct用来发布消息.FanoutCustomerA和Fan…
我发了个朋友圈,Swagger真他妈的牛B,解放了开发API的码农,麻麻再也不用担心我们写API文档耽误回家吃饭了. /// <summary> /// 发送钉钉消息 /// </summary> /// <param name="toUser">Employee的userid,多个使用|分隔</param> /// <param name="title">标题</param> /// <…
接口定义 应用支持推送文本.图片.视频.文件.图文等类型.请求方式:POST(HTTPS)请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN 参数说明: ACCESS_TOKEN 必填 - 各个消息类型的具体POST格式请阅后续"消息类型"部分.- 如果有在管理端对应用设置"在微工作台中始终进入主页",应用在微信端只能接收到文本消息,并且文本消息的长度限制为…