您好,欢迎访问一九零五行业门户网

WorkerMan Connection类的使用(附代码)

下面由workerman教程栏目给大家介绍workerman connection类的使用,希望对需要的朋友有所帮助!
一、tcpconnection类 的使用
 1、简单的tcp测试
server.php
<?phprequire_once __dir__.'/workerman/autoloader.php';use workerman\worker;$worker = new worker('websocket://0.0.0.0:80');// 连接回调$worker->onconnect = function ($connection){ echo "connection success\n";};// 接受发送消息$worker->onmessage = function ($conn,$data){ $conn->send("hello world");};// 关闭连接$worker->onclose = function ($connection){ echo "connection close \n";};$worker::runall();
测试结果:
服务端输出:
以下错误表示,里面的连接协议没有修改掉原因。
www@iz23s8agtagz:~$ telnet 127.0.0.1 8085trying 127.0.0.1...connected to 127.0.0.1.escape character is '^]'.^[[a^[[ahttp/1.1 400 bad request<b>400 bad request</b><br>invalid handshake data for websocket. <br> see <a href="http://wiki.workerman.net/error1">http://wiki.workerman.net/error1</a> for detail.connection closed by foreign host.
2、黑白名单的访问
server.php
<?phprequire_once __dir__.'/workerman/autoloader.php';use workerman\worker;$worker = new worker('tcp://0.0.0.0:8085');// 连接回调$worker->onconnect = function ($connection){ // ip 白名单验证 if($connection->getremoteip() != '127.0.0.1'){ $connection->close("ip address forbidden"); }};// 接受发送消息$worker->onmessage = function ($conn,$data){ $conn->send("hello world");};// 关闭连接$worker->onclose = function ($connection){ echo "connection close \n";};$worker::runall();
开启workerman服务
正确的访问:
非本地地址访问:
二、asynctcpconnection类 的使用
server.php
<?phprequire_once __dir__.'/workerman/autoloader.php';use workerman\worker;$worker = new worker('websocket://0.0.0.0:443');// workerman 启动的回调,这里传递的是worker对象$worker->onworkerstart = function ($worker){ echo "onworkerstart success";};// 连接回调$worker->onconnect = function ($connection){ $connection_baidu = new \workerman\connection\asynctcpconnection('tcp://www.baidu.com:443'); // 百度的数据发送给浏览器。返回数据后,使用的数据要use 进来, $connection_baidu->onmessage = function ($connection_baidu,$data) use ($connection){ $connection->send($data); }; // 浏览器接受的数据发送给百度 $connection->onmessage = function ($connection,$data) use ($connection_baidu){ $connection_baidu->send($data); }; $connection_baidu->connect();};// 接受发送消息$worker->onmessage = function ($conn,$data){ $conn->send("hello world");};// 关闭连接$worker->onclose = function ($connection){ echo "connection close \n";};//workerman 停止回调$worker->onworkerstop = function ($worker){ echo "onworkerstop success";};$worker::runall();
更多workerman相关文章请关注workerman使用教程栏目。
以上就是workerman connection类的使用(附代码)的详细内容。
其它类似信息

推荐信息