小編給大家分享一下WorkerMan中Connection類的使用示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、牟定網(wǎng)站維護、網(wǎng)站推廣。
下面由workerman教程欄目給大家介紹WorkerMan Connection類的使用,希望對需要的朋友有所幫助!
一、TcpConnection類 的使用
1、簡單的TCP測試
Server.php
onConnect = function ($connection){ echo "connection success\n"; }; // 接受發(fā)送消息 $worker->onMessage = function ($conn,$data){ $conn->send("Hello World"); }; // 關閉連接 $worker->onClose = function ($connection){ echo "connection close \n"; }; $worker::runAll();
測試結果:
服務端輸出:
以下錯誤表示,里面的連接協(xié)議沒有修改掉原因。
www@iZ23s8agtagZ:~$ telnet 127.0.0.1 8085 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ^[[A^[[A HTTP/1.1 400 Bad Request 400 Bad Request
Invalid handshake data for websocket.
See http://wiki.workerman.net/Error1 for detail.Connection closed by foreign host.
2、黑白名單的訪問
Server.php
onConnect = function ($connection){ // IP 白名單驗證 if($connection->getRemoteIP() != '127.0.0.1'){ $connection->close("IP Address Forbidden"); } }; // 接受發(fā)送消息 $worker->onMessage = function ($conn,$data){ $conn->send("Hello World"); }; // 關閉連接 $worker->onClose = function ($connection){ echo "connection close \n"; }; $worker::runAll();
開啟Workerman服務
正確的訪問:
非本地地址訪問:
二、AsyncTcpConnection類 的使用
Server.php
onWorkerStart = function ($worker){ echo "onWorkerStart success"; }; // 連接回調(diào) $worker->onConnect = function ($connection){ $connection_baidu = new \Workerman\Connection\AsyncTcpConnection('tcp://www.baidu.com:443'); // 百度的數(shù)據(jù)發(fā)送給瀏覽器。返回數(shù)據(jù)后,使用的數(shù)據(jù)要use 進來, $connection_baidu->onMessage = function ($connection_baidu,$data) use ($connection){ $connection->send($data); }; // 瀏覽器接受的數(shù)據(jù)發(fā)送給百度 $connection->onMessage = function ($connection,$data) use ($connection_baidu){ $connection_baidu->send($data); }; $connection_baidu->connect(); }; // 接受發(fā)送消息 $worker->onMessage = function ($conn,$data){ $conn->send("Hello World"); }; // 關閉連接 $worker->onClose = function ($connection){ echo "connection close \n"; }; //Workerman 停止回調(diào) $worker->onWorkerStop = function ($worker){ echo "onWorkerStop success"; }; $worker::runAll();
以上是“WorkerMan中Connection類的使用示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!