扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
小编给大家分享一下WorkerMan中Connection类的使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、牟定网站维护、网站推广。
下面由workerman教程栏目给大家介绍WorkerMan Connection类的使用,希望对需要的朋友有所帮助!
一、TcpConnection类 的使用
1、简单的TCP测试
Server.php
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 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"); } }; // 接受发送消息 $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"; }; // 连接回调 $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中Connection类的使用示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流