コード例 #1
0
ファイル: WebSocketServer.php プロジェクト: xingcuntian/yaf
 public function __construct()
 {
     define('APPLICATION_PATH', dirname(dirname(__DIR__)) . "/application");
     $this->application = new Yaf_Application(dirname(APPLICATION_PATH) . "/conf/application.ini");
     $this->application->bootstrap();
     $server = new swoole_websocket_server("0.0.0.0", 9503);
     $server->set(array('daemonize' => true));
     $server->on('Open', array($this, 'onOpen'));
     $server->on('Message', array($this, 'onMessage'));
     $server->on('Close', array($this, 'onClose'));
     $server->start();
 }
コード例 #2
0
 public function __construct()
 {
     //启动应用
     $this->initializationOfApp();
     // 创建swoole_http_server对象
     $server = new swoole_websocket_server("0.0.0.0", 9507);
     //$server->setGlobal(WEBSOCKET_OPCODE_TEXT);
     $server->on('open', array($this, 'onOpen'));
     $server->on('message', array($this, 'onMessage'));
     $server->on('close', array($this, 'onClose'));
     //$server->on('shutdown', array($this, 'onShutdown'));
     $server->start();
 }
コード例 #3
0
ファイル: WebSocketServer.php プロジェクト: nosun/yaf
 public function __construct()
 {
     $serv = new swoole_websocket_server("127.0.0.1", 9503);
     $serv->set(array('daemonize' => true));
     $serv->on('Open', function ($server, $req) {
         echo "connection open: " . $req->fd;
     });
     $serv->on('Message', function ($server, $frame) {
         $server->push($frame->fd, json_encode($frame->data));
     });
     $serv->on('Close', function ($server, $fd) {
         echo "connection close: " . $fd;
     });
     $serv->start();
 }
コード例 #4
0
 public function __construct()
 {
     $this->table = new swoole_table(1024);
     $this->table->column('id', swoole_table::TYPE_INT, 8);
     //1,2,4,8
     $this->table->create();
     $config_obj = Yaf_Registry::get("config");
     $live_config = $config_obj->live->toArray();
     $server = new swoole_websocket_server($live_config['ServerIp'], $live_config['port']);
     if (isset($live_config['logfile'])) {
         $server->set(array('daemonize' => true, 'log_file' => $live_config['logfile']));
     } else {
         $server->set(array('daemonize' => true));
     }
     $server->on('Open', array($this, 'onOpen'));
     $server->on('Message', array($this, 'onMessage'));
     $server->on('Close', array($this, 'onClose'));
     $server->start();
 }
コード例 #5
0
ファイル: SwooleLiveServer.php プロジェクト: qieangel2013/zys
 public function __construct()
 {
     define('APPLICATION_PATH', dirname(dirname(__DIR__)) . "/application");
     define('MYPATH', dirname(APPLICATION_PATH));
     $this->application = new Yaf_Application(dirname(APPLICATION_PATH) . "/conf/application.ini");
     $this->application->bootstrap();
     $config_obj = Yaf_Registry::get("config");
     $live_config = $config_obj->live->toArray();
     $server = new swoole_websocket_server($live_config['ServerIp'], $live_config['port']);
     //ssl配置,注意编译swoole的时候需要加上--enable-openssl选项
     //$server = new swoole_websocket_server($live_config['ServerIp'], $live_config['port'], SWOOLE_BASE, SWOOLE_SOCK_TCP | SWOOLE_SSL);
     if (isset($live_config['logfile'])) {
         $server->set(array('daemonize' => true, 'log_file' => $live_config['logfile']));
     } else {
         $server->set(array('daemonize' => true));
     }
     $server->on('Open', array($this, 'onOpen'));
     $server->on('Message', array($this, 'onMessage'));
     $server->on('Close', array($this, 'onClose'));
     $server->start();
 }
コード例 #6
0
<?php

$ws = new swoole_websocket_server("0.0.0.0", 9600);
$ws->on('open', function ($ws, $request) {
    $ws->push($request->fd, "hello, welcome\n");
});
$ws->on('message', function ($ws, $frame) {
    echo "Message: {$frame->data}\n";
    $ws->push($frame->fd, "server: {$frame->data}");
});
$ws->on('close', function ($ws, $fd) {
    echo "client-{$fd} is closed\n";
});
$ws->start();
コード例 #7
0
ファイル: server.php プロジェクト: wanggeopens/own-libs
<?php

$serv = new swoole_websocket_server("0.0.0.0", 9502);
$serv->on('Open', function ($server, $req) {
    echo "connection open: " . $req->fd . PHP_EOL;
});
$serv->on('Message', function ($server, $frame) {
    echo "message: " . $frame->data . PHP_EOL;
    $server->push($frame->fd, json_encode(["hello", "world"]));
});
$serv->on('Close', function ($server, $fd) {
    echo "connection close: " . $fd . PHP_EOL;
});
$serv->start();
コード例 #8
0
ファイル: websocket_server.php プロジェクト: swoole/tests
<?php

require __DIR__ . '/TestServer.php';
$server = new swoole_websocket_server("0.0.0.0", 9501);
//$server = new swoole_websocket_server("0.0.0.0", 9501, SWOOLE_BASE);
$server->on('open', function (swoole_websocket_server $_server, swoole_http_request $request) {
    echo "server#{$_server->worker_pid}: handshake success with fd#{$request->fd}\n";
    //    var_dump($request);
});
$server->on('message', function (swoole_websocket_server $_server, $frame) {
    $pkg = unserialize($frame->data);
    if ($pkg['index'] % 1000 == 0) {
        echo "#{$pkg['index']} recv package. sid={$pkg['sid']}, length=" . strlen($frame->data) . ", md5=" . md5($frame->data) . "\n";
    }
});
$server->on('close', function ($_server, $fd) {
    echo "client {$fd} closed\n";
});
$server->start();
コード例 #9
0
<?php

/**
 * WebSocket Server.
 *
 * @see http://www.w3.org/TR/2012/CR-websockets-20120920/
 * @see https://tools.ietf.org/html/rfc6455
 */
$websocketServer = new swoole_websocket_server('127.0.0.1', 8080);
$websocketServer->on('open', function ($server, $request) {
    $data = json_encode(['time' => time(), 'message' => 'Merhaba!']);
    $server->push($request->fd, $data);
});
$websocketServer->on('message', function ($server, $frame) {
    $data = json_encode(['time' => time(), 'message' => htmlspecialchars($frame->data, ENT_NOQUOTES | ENT_HTML5, 'UTF-8')]);
    foreach ($server->connections as $client) {
        $server->push($client, $data);
    }
});
$websocketServer->start();
コード例 #10
0
 public function run()
 {
     $this->_initTable();
     $this->server->start();
 }
コード例 #11
0
 public function actionSwooleserver()
 {
     $host = '0.0.0.0';
     $port = 9501;
     $server = new \swoole_websocket_server($host, $port);
     $server->on('open', function (\swoole_websocket_server $server, $request) {
         echo "server: handshake success with fd{$request->fd} \n";
     });
     $server->on('message', function (\swoole_websocket_server $server, $frame) {
         echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
         $key = $frame->data;
         $reply = 'this is swoole server: your key=' . $key;
         //Yii::log('serializer='.Yii::$app->cache->serializer);// yii 对memcache的value序列化存储了
         $listOri = Yii::$app->cache->get($key);
         //$this->keyAdd;
         $list = @json_decode($listOri, true);
         //print_r($list);
         $data = ['code' => 0, 'msg' => 'ok', 'data' => ['reply' => $reply, 'total' => count($list), 'list' => $list]];
         $server->push($frame->fd, json_encode($data));
     });
     $server->on('close', function ($ser, $fd) {
         echo "client {$fd} closed\n";
     });
     $server->start();
     echo "swolle server start by {$host}:{$port}\n";
 }