一、下載安裝GatewayWorker
1. 下載Linux的demo
地址:http://doc2.workerman.net/642185
2. 根據(jù)官方文檔安裝demo,如果啟動(dòng)報(bào)錯(cuò)
pcntl_signal() has been disabled for security reasons in file /www/wwwroot/shop/vendor/workerman/workerman/Worker.php on line 1107
pcntl_fork() has been disabled for security reasons in file /www/wwwroot/shop/vendor/workerman/workerman/Worker.php on line 1514
問題原因:pcntl_signal,pcntl_fork等系列函數(shù)被禁用了
解決方案:找到 php.ini 文件并定位到 disable_functions 字段,將其后的 pcntl_signal、pcntl_fork等系列函數(shù)刪掉。
寶塔面板操作步驟:軟件商店(已安裝) -> PHP5.6 ->設(shè)置-> 禁用函數(shù),將pcntl_signal、pcntl_fork等系列刪除即可
3. 根據(jù)官方文檔新開幾個(gè)cmd命令行窗口運(yùn)行 telnet 127.0.0.1 8282,輸入任意字符即可聊天(非本機(jī)測試請將127.0.0.1替換成實(shí)際ip)
如果telnet超時(shí)請檢查服務(wù)器防火墻
防火墻:
查看firewall服務(wù)狀態(tài):systemctl status firewalld
查看firewall狀態(tài):firewall-cmd --state
firewalld.service服務(wù)命令
開啟:service firewalld start
重啟:service firewalld restart
關(guān)閉:service firewalld stop
4.注意事項(xiàng)
1.telnet連接測試只能用text協(xié)議,websocket不行,websocket測試可用在線websocket工具測試連接
2.如果啟動(dòng)成功,websocket連接不上,請檢查服務(wù)器端口是否開放如:8282端口
5.報(bào)錯(cuò)及處理方法
1.SSL證書問題,報(bào)錯(cuò)為“exception onOpen fail code:8, msg:TLS handshake failed”
處理:根據(jù)websocket項(xiàng)目下的start_gateway.php文件中的SSL配置路徑,上傳SSL證書到服務(wù)器

image.png
二、與TP5框架結(jié)合
1. GatewayWorker中的start_gateway.php文件中
gateway進(jìn)程 改用websocket協(xié)議
// gateway 進(jìn)程,這里使用websocket協(xié)議,可以用telnet測試
$gateway = new Gateway("websocket://0.0.0.0:8282");