即时通讯

Tech base:长连接。
轮询,长连接是2个概念。轮询使用while(true) 不断发起请求。
TCP: 传输层协议
HTTP: 应用层协议
WebSocket: 应用层协议,和http一样,base on tcp
长连接:一次建立,长久使用。
Socket:是封装了tcp的一个接口, is a tool.
Telnet: a tool on linux, could be used for checking our tcp if run.
MeepoPS: an open source framework, developed by pure php ,socket service .
The link of tcp is reliable, it could ensure 4 no: no data lost ,no data out-of-sequence, no data error, no data repetition .

即时通讯_第1张图片
即时通讯_第2张图片

Socket:套接字,正体是编程的一个接口,封装了tcp/ip协议

起源于unix,是建立长连接的基础。


即时通讯_第3张图片

socket机制就像打电话一样。socket对通信设施的细节do not care ,

套接字的连接过程:

Step1 : Server monitor, Step2 :client request , Step3:connect confirm.

HTTP:

即时通讯_第4张图片

The server does not know 2 requests if from the same client,for solving this , web server inquires cookie,

WebSocket

即时通讯_第5张图片

是H5的一个 new protocol.
是web领域主流的即时通讯协议。
在传统的web开发中,浏览器通过http仅能实现单向的通信,そのために、H5定义了Websocket protocol, 能更好地节约服务器的资源和带宽,并且达到实时通信的效果, 很多网站为了实现即时通讯,都采用轮询,这个明显的缺点就是,浏览器需要不断地向服务器发送请求,しかし一个http request的头 very long , 里边有用的数据很小, 在websocket里,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就可以产生一个fast 通道,两者之间就可以之间进行数据传送。这样有 两大优点

  1. Header变成了一个很小的值,大概只有2个字节,
    ==
  2. Serverpush, 服务器不再被动了,而是有了新datas就主动push给browser,在client,js只需要将服务器的ip和port作为参数,执行New Websocket 这一行代码,client就可以发起一个websocket请求,
    ==
    http的成功code 是200
    WebSocket是** 101**
    WS的header和http的header是一模一样的

进入MeepoPS官网,进入github,

PS: PHP Socket


即时通讯_第6张图片
即时通讯_第7张图片
Paste_Image.png
即时通讯_第8张图片

PCNTL:php多进程操作的库。

即时通讯_第9张图片

就是说:想要用MeepoPS, 需要在Mac Linux 下运行。win上需要安虚拟机。

你可能感兴趣的:(即时通讯)