因为需要开发长连接应用,所以使用了Workerman。我是Windows服务器,所以我想将Workerman安装到Windows中。不得不说Windows作为服务器真的是“好用”。按照Workerman手册开始,安装后发现无法启动。在网上找了很多基于linux的安装教程。胜利实属难得,残缺不全者寥寥无几。最后,花了大约一天的时间。自己搞定,分享出来,免得别人入坑。一号坑——集成TP3.2加载第三方有几种方式。具体可以参考官方手册:http://document.thinkphp.cn/m...我用的是第一种命名空间自动加载的方法。因为我下载的Workerman版本有namespace,所以一定要把目录放对地方,把Wokerman文件夹放到ThinkPHP/Library/下,把里面除了Constants.php文件以外的文件全部改成.class。php结束。二号坑——在应用目录加载,比如HomeController,新建WorkermanController.class.php文件命名空间Home\Controller;useThink\Controller;useWorkerman\Worker;classWorkerManController{publicfunctionindex(){if(!IS_CLI){die("无法直接访问,请通过命令行启动");}$worker=new\Workerman\Worker('websocket://127.0.0.1:2346');//当接收到客户端发送的数据时然后向客户端返回hello$data$worker->onWorkerStart=function($worker){echo"Workerstarting...\n";};$worker->onMessage=function($connection,$data){//向客户端发送hello$data$connection->send('hello'.$data);};//运行工人Worker::runAll();}}然后可以打印一下,看看能不能输出$worker,如果正常输出就说明worker类加载成功了。巨坑3号——启动Workerman只能通过命令行启动,即CMD。直接访问URL是不可接受的。这也困扰了我很久。TP框架中的启动有点特殊,不能直接访问php。文件必须通过TP路由访问(有点像我们访问URL的方式),启动路径必须正确。首先,进入网站根目录,即index.php同级目录,创建一个bat文件,编辑内容如下:phpindex.phpHome/Workerman(这里编辑的内容可能跟你的路由设置有关系,我这里是默认框架路由没改)双击运行bat文件,看到运行成功
