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();

转载于:https://www.cnblogs.com/lzh900926/p/6009994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值