第一步:下载workerman内核,再次熟悉workerman手册(注意!手册是至关重要的,workerman手册上常见的问题已经都有解决方案了,要多看手册)
注意事项:
1.长连接必须加心跳,长连接必须加心跳,长连接必须加心跳,重要的话说三遍。 长连接长时间不通讯肯定会被防火墙干掉而断开。不加心跳的长连接应用就等着老板KO你吧。 workerman心跳说明、 gatewayWorker心跳说明
2 . 不要使用exit die sleep语句
一 主要类的使用
worker类的主要属性:
$connections 此属性中存储了当前进程的所有的客户端连接对象,其中id为connection的id编号
格式为:array(id=>connection, id=>connection, ...)
$stdoutFile 为在守护进程模式中所有的输出echo dump 的内容都会被写入到stdotFile指定的文件中
主要的回调:onWorkerStart 每个子进程启动执行,可以初始化进程的数据库连接和redis连接等
onConnect 有客户连接本进程时触发
onMessage 有客户发送来数据时触发
onClose 有客户断开连接触发
connection的主要属性:
$worker : 此属性时当前连接所在的进程workerman对象
主要使用的接口:
send() 向客户端发送数据
close() 关闭连接
Timer类:
注意时间可以接受小数
注意;!!!!!!!!!!!!!!!!!!!!!!!!!!
worker 类是只读类,不能向类里面写入属性
connection 可以写入属性,如:$connection->uid = 1;
二 数据库
使用mysql数据库,类使用http://doc.workerman.net/components/workerman-mysql.html中的类,
三 开始制作
在http://doc.workerman.net/getting-started/simple-example.html中有各个协议的例子可以试着测试下