标签:
最近公司的一项目中,需要用PHP搭建一个socket服务。
本来PHP是不适合做服务的,因为和第三方合作,需要采用高效而稳定的TCP协议进行数据通信。经过多次尝试,最终选择了开源的PHP扩展:swoole,是用C写的多线程异步Server。
swoole官网:http://www.swoole.com/,http://wiki.swoole.com/wiki/index/prid-1
swoole入门教程及文档:https://github.com/LinkedDestiny/swoole-doc
其中二进制数据通信使用php自带的pack()和unpack()函数。需要注意的是,使用pack()打包字母时,需要传入其相应的ASCII码值。
附一段关闭该socket服务的shell脚本(当代码有更新,socket服务需要重启时会用到):
#!/bin/sh echo "start kill socket..." PID=`netstat -anp|grep 10001|awk ‘{printf $7}‘|cut -d/ -f1` echo "pid: $PID" kill -50 "$PID" echo "Killed pid 10001" #假定此socket服务的端口为10001 kill -USR1
用PHP搭建基于swoole扩展的socket服务(附PHP扩展的安装步骤)
标签:
原文地址:http://www.cnblogs.com/imxiu/p/4374227.html