Ejemplo n.º 1
0
 /**
  * 绑定事件
  */
 protected function bind()
 {
     self::$server->on('ManagerStart', [$this, 'onManagerStart']);
     self::$server->on('WorkerStart', [$this, 'onWorkerStart']);
     self::$server->on('WorkerStop', [$this, 'onWorkerStop']);
     self::$server->on('PipeMessage', [$this, 'onPipeMessage']);
     self::$server->on('Start', [$this, 'onStart']);
     self::$server->on('Finish', [$this, 'onFinish']);
     self::$server->on('Task', [$this, 'onTask']);
     self::$server->on('Packet', [$this, 'onPacket']);
     self::$server->on('Close', [$this, 'onClose']);
     self::$server->on('Connect', [$this, 'onConnect']);
     # 其它自定义回调函数
     foreach (['Shutdown', 'Timer', 'ManagerStop'] as $type) {
         $fun = "on{$type}";
         if (method_exists($this, $fun)) {
             self::$server->on($type, [$this, $fun]);
         }
     }
     # 自定义协议
     if (self::$serverType === 0) {
         self::$server->on('Receive', [$this, 'onReceive']);
     }
     # HTTP
     if (self::$serverType === 1 || self::$serverType === 3) {
         self::$server->on('Request', [$this, 'onRequest']);
     }
     # WebSocket
     if (self::$serverType === 2 || self::$serverType === 3) {
         self::$server->on('Message', [$this, 'onMessage']);
         if (method_exists($this, 'onHandShake')) {
             self::$server->on('HandShake', [$this, 'onHandShake']);
         } else {
             self::$server->on('Open', [$this, 'onOpen']);
         }
     }
 }
Ejemplo n.º 2
0
<?php

use Swoole\Server;
$serv = new Server("127.0.0.1", 9501);
$serv->on('receive', function (Server $serv, $fd, $from_id, $data) {
    echo "[#" . $serv->worker_id . "]\tClient[{$fd}]: {$data}\n";
    if ($serv->send($fd, "hello\n") == false) {
        echo "error\n";
    }
});
$serv->start();