标签:pen open table info ESS 选项 服务器 ini array
1、安装swoole4.搭建Echo服务器
服务端 Server
创建一个Server.php文件并输入如下内容:
// Server
class Server
{
private $serv;
public function __construct() {
$this->serv = new swoole_server("0.0.0.0", 9501);
$this->serv->set(array(
‘worker_num‘ => 8,
‘daemonize‘ => false,
));
$this->serv->on(‘Start‘, array($this, ‘onStart‘));
$this->serv->on(‘Connect‘, array($this, ‘onConnect‘));
$this->serv->on(‘Receive‘, array($this, ‘onReceive‘));
$this->serv->on(‘Close‘, array($this, ‘onClose‘));
$this->serv->start();
}
public function onStart( $serv ) {
echo "Start\n";
}
public function onConnect( $serv, $fd, $from_id ) {
$serv->send( $fd, "Hello {$fd}!" );
}
public function onReceive( swoole_server $serv, $fd, $from_id, $data ) {
echo "Get Message From Client {$fd}:{$data}\n";
$serv->send($fd, $data);
}
public function onClose( $serv, $fd, $from_id ) {
echo "Client {$fd} close connection\n";
}
}
// 启动服务器 Start the server
$server = new Server();
客户端 Client
创建一个Client.php文件并输入如下内容:
<?php
class Client
{
private $client;
public function __construct() {
$this->client = new swoole_client(SWOOLE_SOCK_TCP);
}
public function connect() {
if( !$this->client->connect("127.0.0.1", 9501 , 1) ) {
echo "Error: {$this->client->errMsg}[{$this->client->errCode}]\n";
}
fwrite(STDOUT, "请输入消息 Please input msg:");
$msg = trim(fgets(STDIN));
$this->client->send( $msg );
$message = $this->client->recv();
echo "Get Message From Server:{$message}\n";
}
}
$client = new Client();
$client->connect();
运行 Run it!
在Terminal下执行命令php Server.php即可启动服务器,在另一个Terminal下执行php Client.php,输入要发送的内容,即可发送消息到服务器,并收到来自服务器的消息。
websocket:
$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);
$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";
$server->push($frame->fd, "this is server");
});
$server->on(‘close‘, function ($ser, $fd) {
echo "client {$fd} closed\n";
});
$server->start();
标签:pen open table info ESS 选项 服务器 ini array
原文地址:http://blog.51cto.com/itafei/2347852