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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,854评论 0 3
  • 网络编程 一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运...
    go以恒阅读 6,399评论 0 6
  • 网络概念第一天 两台电脑怎么通过网络传输数据?怎样才能知道传输的是数据?谁摸过网线? 看电影,怎么看的?通过电流,...
    小吖朱阅读 5,466评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,799评论 1 32
  • 出处:韩天峰 网址:rango.swoole.com/archives/508 并发IO问题一直是后端编程中的技术...
    meng_philip123阅读 6,957评论 1 38