swoole websocket和TCPsocket的交互


<?php   /**   * Created by PhpStorm.   * User: lancelot   * Date: 16-7-30   * Time: 下午8:13   */   class Server   {   private $serv;       /**   * @var PDO   */   private $pdo;       public function __construct()   {   $this->serv = new swoole_websocket_server("0.0.0.0", 9501);   $this->serv->set([   'worker_num' => 1,   'dispatch_mode' => 2,   'daemonize' => 0,   ]);       $this->serv->on('message', array($this, 'onMessage'));   $this->serv->on('Request', array($this, 'onRequest'));       $port1 = $this->serv->listen("0.0.0.0", 9503, SWOOLE_SOCK_TCP);   $port1->set(   [   'open_eof_split'=> true,//檢測自動分包打開(具體干什么的 我不懂)   'package_eof' => "\r\n"   ]   );   $port1->on('Receive', array($this, 'onTcpReceive'));       $this->serv->start();   }    //顯示是哪個客戶端發來的數據   public function onMessage(swoole_websocket_server $_server, $frame)   {   foreach($_server->connections as $fd)   {   $info = $_server->connection_info($fd);   var_dump($info);   }   }    //服務端接收到不同端口的數據如何處理   public function onRequest($request, $response)   {   foreach($this->serv->connections as $fd)   {   $info = $this->serv->connection_info($fd);   switch($info['server_port'])   {   case 9501:   {   // websocket   if($info['websocket_status'])   {       }   $response->end("");   }       case 9503:   {   // TCP   }   }       var_dump($info);   }   }       public function onTcpReceive( swoole_server $serv, $fd, $from_id, $data ) {   var_dump($data);   $data_list = explode("\r\n", $data);   foreach ($data_list as $msg) {   if( !empty($msg) ) {   echo "Get Message From Client {$fd}:{$msg}\n";   }       }   }           }       new Server();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM