编程

个推技术实现原理介绍

概述

PUSH是互联网上内容提供者和内容定制方之间的一种通信机制,利用在服务器端的程序把数据源源不断地推向客户端,大大提高客户机和服务器之间的交互性能。

传统互联网上数据交互一般有poll和push两种方式。poll典型使用场景是浏览网页,是用户主动发起请求,向服务器获取数据;push刚好相反,通过服务器直接发送数据给客户端,用户被动接受消息,类似于更加及时的短信。Push的使用场景有以下两特点:时间不确定性、时效性,如发送团购信息,发送电子消费账单等。

个推为第三方应用提供了跨手机平台一致的、稳定可靠的消息推送服务,实现服务端到客户端的消息主动推送。第三方应用可以实现针对单一目标地址的推送,也可以实现群发消息推送,还可以通过指定tag进行定向群组推送。个推除了为第三方提供基本的透明消息传输,还提供了一些消息展示方式,实现在客户端的通知提示、弹框操作等,帮助客户快速实现更为定制化的消息推送服务。…

极光推送技术原理:移动无线网络长连接

移动互联网应用现状

因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。

为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送到客户端,也就是我们说的 Push。

从耗费的电量、流量和数据送达的及时性来说,Push 都会有明显的优势,但 Push 的实现和维护成本相对较高。在移动无线网络下维护长连接,相对也有一些技术上的难度。本文试图给大家介绍一下我们极光推送Android 平台上是如何维护长连接。…

        

TCP性能优化

影响TCP性能的协议因素:(1)TCP连接建立握手(2)TCP慢启动拥塞控制;(3)数据聚集的Nagle算法;(4)用于捎带确认的TCP延迟确认机制。(5)TIME_WAIT时延和端口耗尽。1、2可通过长连接避免,3可使用TCP_NODELAY避免,4可通过调整内核栈参数避免,但调整需谨慎,5通常只在性能测试环境出现。
 普通服务器经过仔细的参数配置,也能支持百万级的idle长连接。关键是一堆net.ipv4参数,tcp_rmem/tcp_wmem的默认值要设小,tcp_mem/tcp_max_orphans要大。
        

markdown简明语法2

 

markdown简明语法

 

Markdown是一种极简的『标记语言』,将文本转为HTML,通常为我大码农所用。其不追求大而全,简洁至上,正所谓不求最贵,只求最好!

本文介绍Markdown基本语法,内容很少,一行语法一行示例,学会后可轻松写出高大上的文档,再也不需要各种编辑器去调文章格式。另外,网上有各平台下的Markdown工具可用,也有在线的,我直接使用sublime搞定,Markdown本来就是为了追求简洁,弄个工具岂不多此一举。

显著提升程序员身心健康和工作效率的装备有哪些?

【转注】:这个问题来自知乎网友。题主还补充说:

包括并不限于如下领域:

  1. 开发工具,IDE,不限平台,编程字体
  2. 笔记本,显示器,键盘,鼠标
  3. 座椅,辅助支架,背包
  4. 辅助按摩类器材,针对颈椎,手腕等
  5. 知友补充,女盆友,确实是不可或缺(大家喜欢神马款,个人喜欢萌妹纸,来share一下趋向吧)
  6. 其他你认为有助于猿类们工作的东东

目前最受欢迎的回答来自吴止介,伯乐在线已征得转载许可。

流(stream)是怎么一回事

—— 对这个问题的思考来源于前几天对 Java Socket 编程的尝试,TCP 协议要求建立一个 Socket 连接(著名的三次握手)之后才能进行通信,而连接双方进行数据的发送与接受,都是通过对输入输出流的机制来完成的。

流的概念

流作为概念应该是语言无关的。文件IO流,Unix系统标准输入输出流,标准错误流(stdin, stdout, stderr),还有一开始提到的 TCP 流,还有一些 Web 后台技术(如Nodejs)对HTTP请求/响应流的抽象,都可以见到流的概念。…

通信协议——Http、TCP、UDP

TCP   HTTP   UDP:

 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。

TCP   HTTP   UDP三者的关系:

TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。…