12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace app\common\workman;
- use Workerman\Connection\AsyncTcpConnection;
- use Workerman\Worker;
- /**
- * websocket客户端
- * Class WebSocketClient
- * @package app\common\workman
- */
- class WebSocketClient
- {
- protected $worker;//websocket实例
- /**
- * 构造方法
- * WebSocketServer constructor.
- */
- public function __construct()
- {
- }
- /**
- * 启动
- */
- public function start(){
- $this->worker = new Worker();
- $this->run();
- }
- /**
- * 业务方法,业务写在这里
- */
- private function run(){
- $this->worker->onWorkerStart = function ($worker) {
- $host = "ws://127.0.0.1:23456";//定义协议和端口,后续可以放到配置中
- $con = new AsyncTcpConnection($host);
- $con->onConnect = function($con) {
- $tlv=new Tlv();
- $tag = 0x01;
- $value = 'Hello i am client';
- $length = strlen( $value );
- $data = array(
- array($tag, $length,$value),
- array($tag, $length,$value)
- );
- //组包
- $data = $tlv->Write($data);
- $con->send($data);
- };
- $con->onMessage = function($con, $data) {
- echo $data;
- //$con->send('hello,i am client');
- };
- $con->connect();
- };
- Worker::runAll();
- }
- }
|