PHP构建即时通讯系统

什么是即时通讯?

实时的数据传输与交互

前提准备知识

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 -y

3.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.git

meepoPs测试

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

之后我们就可以测试了,更过内容请通过官网的说明文档获得

你可能感兴趣的:(PHP构建即时通讯系统)