下面由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相关文章请关注WorkerMan使用教程栏目。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Quelles sont les performances de php8 ?
Qu'est-ce que la crypto-monnaie kol
La différence entre les pages Web statiques et les pages Web dynamiques
Solution au problème xlive.dll manquant
La différence entre les services distribués et les microservices
Sur quelle touche dois-je appuyer pour récupérer lorsque je ne parviens pas à taper sur le clavier de mon ordinateur ?
La différence entre recv et recvfrom
Pourquoi Webstorm ne peut pas exécuter le fichier