因爲須要開發長鏈接應用,要用到了Workerman,我是Windows的服務器,因此要把Wokerman裝到windows,不得不說Windows作服務器那真是「好用」啊,一開始本身按照Workerman手冊,結果發現裝完後啓動不了,網上找了不少安裝教程都是基於linux的,win真的是少得可憐,僅有的幾篇還不完整,最後大概花了一天的時候本身搞定的,分享出來,免得別人入坑。php
TP3.2 加載第三方有幾種方式,具體參考官方手冊:http://document.thinkphp.cn/m...
我用的是第一種命名空間自動加載的方式,由於我下的Workerman版本是有命名空間的,因此必定要把目錄放對了,把Wokerman文件夾放到ThinkPHP/Library/下,而且把裏面除Constants.php文件外的全部文件改成.class.php結尾。html
在應用目錄下如HomeController下新建WorkermanController.class.php文件linux
namespace Home\Controller; use Think\Controller; use Workerman\Worker; class WorkerManController{ public function index(){ if(!IS_CLI){ die("沒法直接訪問,請經過命令行啓動"); } $worker = new \Workerman\Worker('websocket://127.0.0.1:2346'); // 當收到客戶端發來的數據後返回hello $data給客戶端 $worker->onWorkerStart = function($worker){ echo "Worker starting...\n"; }; $worker->onMessage = function($connection, $data) { // 向客戶端發送hello $data $connection->send('hello '.$data); }; // 運行worker Worker::runAll(); } }
而後能夠打印一下試試能不能輸出$worker,若是正常輸出則說明worker類被成功加載。web
Workerman啓動只能經過命令行,也就是CMD的方式來啓動,直接訪問網址是不行的,這裏也是困擾了我很久,在TP框架內的啓動有點特殊,不能直接訪問php文件,要經過TP的路由訪問(有點像咱們訪問網址的方式),並且啓動的路徑要對。thinkphp
首先進到網站的根目錄,也就是和index.php平級的目錄,創建一個bat文件,編輯內容以下:windows
php index.php Home/Workerman
(這裏編輯的內容可能跟你的路由設置有關係,我這裏是默認沒改過框架路由的)
雙擊運行bat文件便可看到成功運行服務器
這篇教程徹底是原創的,但願能幫助到你們,感受有用的話給個贊吧~websocket