什么是即时通讯?
实时的数据传输与交互
前提准备知识
1. TCP
传输层通信协议
面向连接的、可靠的、基于字节流的
建立链接需要三次握手
2. Socket(套接字)
一个工具,一个接口
封装了TCP/IP协议
建立长连接的基础
3. HTTP协议
一个应用层协议
Header+Body组成
比TCP更高级
短连接
流程:
- 客户机通过TCP/IP协议建立到服务器的TCP连接
- 客户端向服务器发送HTTP协议请求
- 服务器向客户机发送HTTP协议应答包
- 断开连接。客户端渲染HTML文档
4. WebSocket
一个应用层协议
长连接
主流即是通讯协议
开始开发
今天我们开发的是使用MeepoPs,一个多进程, 高性能, 高可用, 高并发, 分布式的轻量级Socket服务。声明:严重依赖PHP的PCNTL库,不支持任何非Linux/unix系统。
本次开发我是在Centos下开发的。
官方网址:
http://meepops.lanecn.com/安装前的准备
1. 安装pcntl扩展(可参照我的另一个文章:PHP可扩展(extension))
2. 安装POSIX扩展(支持正则表达式)原则上也可以参照PHP扩展文章,但是有个简单的方式可以直接安装
yum list php-process
yum install php-process.i686 -y3. stream_socket_server()的开启
函数作用:Create an Internet or Unix domain server socket
找到php.ini文件,搜索
disable_functions=把stream_socket_server删掉,然后保存重启服务器即可
开发
下载meepops
git clone https://github.com/lixuancn/MeepoPS.gitmeepoPs测试
meepoPS已经帮我们写好了一个demo,我们直接使用就可以了
启动meepops
sudo php demo-telnet.php start -d这个时候我们就可以用Telnet连接端口了
telnet 127.0.0.1 8080如果提示找不到Telnet命令,说明Linux系统上没有装Telnet服务,这个时候输入以下命令安装
yum list telnet
yum install telnet.i686 -y之后我们就可以测试了,更过内容请通过官网的说明文档获得
评论列表(0条)