本文整理汇总了PHP中swoole_client类的典型用法代码示例。如果您正苦于以下问题:PHP swoole_client类的具体用法?PHP swoole_client怎么用?PHP swoole_client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了swoole_client类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: getClientObj
private function getClientObj()
{
$key = $this->getConfigObjKey();
$clientKey = $this->serverConfig[$key]["ip"] . "_" . $this->serverConfig[$key]["port"];
//set the current client key
$this->currentClientKey = $clientKey;
if (!isset(self::$client[$clientKey])) {
$client = new \swoole_client(SWOOLE_SOCK_TCP | SWOOLE_KEEP);
$client->set(array('open_length_check' => 1, 'package_length_type' => 'N', 'package_length_offset' => 0, 'package_body_offset' => 4, 'package_max_length' => 1024 * 1024 * 2, 'open_tcp_nodelay' => 1));
if (!$client->connect($this->serverConfig[$key]["ip"], $this->serverConfig[$key]["port"], self::SW_RECIVE_TIMEOUT)) {
//connect fail
$errorCode = $client->errCode;
if ($errorCode == 0) {
$msg = "connect fail.check host dns.";
$errorCode = -1;
} else {
$msg = socket_strerror($errorCode);
}
//put the fail connect config to block list
$this->serverConfigBlock[$key] = 1;
throw new \Exception($msg, $errorCode);
}
self::$client[$clientKey] = $client;
}
//success
return self::$client[$clientKey];
}
开发者ID:jeftom,项目名称:Dora-RPC,代码行数:27,代码来源:client.php
示例2: sendtagbyswoole
/**
* send message by swoole
* @param string $content the command
* return boolean true if shut down the swoole_client successfully
*/
private function sendtagbyswoole($content)
{
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
$client->connect('127.0.0.1', 8888, 0.5, 0);
$client->send($content);
return $client->close();
}
开发者ID:CptSteven,项目名称:faster-rcnn-mod,代码行数:12,代码来源:train.php
示例3: query
public static function query($sql)
{
$client = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
$client->connect('127.0.0.1', 9509, 0.5, 0);
$client->send($sql);
return $client->recv();
}
开发者ID:kcloze,项目名称:ycf,代码行数:7,代码来源:ModelProxyDb.php
示例4: getClient
function getClient()
{
$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501, -1)) {
exit("connect failed. Error: {$client->errCode}\n");
}
$res = $client->getSocket();
return $client;
}
开发者ID:noikiy,项目名称:swoole-src,代码行数:9,代码来源:get_socket.php
示例5: clientAction
public function clientAction()
{
$client = new swoole_client(SWOOLE_SOCK_TCP);
$client->connect('192.168.80.140', 9021, 0.5);
$client->send('hello world!');
echo $client->recv();
$client->close();
return false;
}
开发者ID:zhangjingpu,项目名称:yaf-lib,代码行数:9,代码来源:Swoole.php
示例6: __construct
public function __construct()
{
$client = new swoole_client(SWOOLE_SOCK_UDP);
//默认是同步,第二个参数可以选填异步
//发起网络连接
$client->connect('0.0.0.0', 9504, 0.5);
$client->send('demo');
echo $client->recv();
}
开发者ID:jhomephper,项目名称:phalcon_swoole,代码行数:9,代码来源:UdpSocketClient.php
示例7: send
function send(swoole_client $cli)
{
$data = array('str1' => str_repeat('A', rand(1000, 9000)), 'str2' => str_repeat('B', rand(1000, 9000)), 'str3' => str_repeat('C', rand(1000, 9000)));
$data['int1'] = rand(100000, 999999);
$sendStr = serialize($data);
$sendData = pack('N', strlen($sendStr)) . $sendStr;
$cli->send($sendData);
echo "send length=" . strlen($sendData) . ", SerId={$data['int1']}\n";
}
开发者ID:pangudashu,项目名称:swoole-src,代码行数:9,代码来源:async_client.php
示例8: onReceive
function onReceive($serv, $fd, $from_id, $data)
{
$socket = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
if ($socket->connect('127.0.0.1', 8002, 0.5)) {
$socket->send($data);
$serv->send($fd, $socket->recv(8192, 0));
}
//unset($socket);
$serv->close($fd);
}
开发者ID:jinguanio,项目名称:david,代码行数:10,代码来源:proxy_sync.php
示例9: thread_start
function thread_start(swoole_thread $coroutine)
{
$serv = $coroutine->serv;
$data = $serv->recv($fd);
$socket = new swoole_client(SWOOLE_SOCK_TCP);
if ($socket->connect('127.0.0.1', 9502, 0.5)) {
$socket->send("request\n");
$response = $socket->recv();
}
$socket->close();
$serv->send($fd, "Server: {$response}\n");
}
开发者ID:liangkwok,项目名称:Swoole,代码行数:12,代码来源:coroutine.php
示例10: sendToServer
function sendToServer($str)
{
global $server;
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
if (!$client->connect($server['ip'], $server['port'], -1)) {
exit("connect failed. Error: {$client->errCode}\n");
}
$client->send($str);
$str = $client->recv();
$client->close();
return $str;
}
开发者ID:dormscript,项目名称:dataTransfer,代码行数:12,代码来源:handleQueue.php
示例11: multiRequest
/**
* 批量请求
* @param array $request_buffer_array ['ip:port'=>req_buf, 'ip:port'=>req_buf, ...]
* @return multitype:unknown string
*/
function multiRequest($request_buffer_array)
{
\Statistics\Lib\Cache::$lastSuccessIpArray = array();
$client_array = $sock_to_ip = $ip_list = array();
foreach ($request_buffer_array as $address => $buffer) {
list($ip, $port) = explode(':', $address);
$ip_list[$ip] = $ip;
$client = new swoole_client(SWOOLE_TCP | SWOOLE_KEEP, SWOOLE_SOCK_SYNC);
$client->connect($ip, $port);
if (!$client) {
continue;
}
$client_array[$address] = $client;
$client_array[$address]->send(encode($buffer));
$sock_to_address[(int) $client->sock] = $address;
}
$read = $client_array;
$write = $except = $read_buffer = array();
$time_start = microtime(true);
$timeout = 0.99;
// 轮询处理数据
while (count($read) > 0) {
foreach ($read as $client) {
$address = $sock_to_address[(int) $client->sock];
$buf = $client->recv();
if (!$buf) {
unset($client_array[$address]);
continue;
}
if (!isset($read_buffer[$address])) {
$read_buffer[$address] = $buf;
} else {
$read_buffer[$address] .= $buf;
}
// 数据接收完毕
if (($len = strlen($read_buffer[$address])) && $read_buffer[$address][$len - 1] === "\n") {
unset($client_array[$address]);
}
}
// 超时了
if (microtime(true) - $time_start > $timeout) {
break;
}
$read = $client_array;
}
foreach ($read_buffer as $address => $buf) {
list($ip, $port) = explode(':', $address);
\Statistics\Lib\Cache::$lastSuccessIpArray[$ip] = $ip;
}
\Statistics\Lib\Cache::$lastFailedIpArray = array_diff($ip_list, \Statistics\Lib\Cache::$lastSuccessIpArray);
ksort($read_buffer);
return $read_buffer;
}
开发者ID:smalleyes,项目名称:statistics,代码行数:58,代码来源:functions.php
示例12: send_chunk
/**
* 分段发送数据
*
* @param swoole_client $client
* @param string $data
* @param int $chunk_size
*/
function send_chunk(swoole_client $client, $data, $chunk_size = 1024)
{
$len = strlen($data);
$chunk_num = intval($len / $chunk_size) + 1;
for ($i = 0; $i < $chunk_num; $i++) {
if ($len < ($i + 1) * $chunk_size) {
$sendn = $len - $i * $chunk_size;
} else {
$sendn = $chunk_size;
}
$client->send(substr($data, $i * $chunk_size, $sendn));
}
}
开发者ID:sophia2152,项目名称:swoole-src,代码行数:20,代码来源:client.php
示例13: create
/**
* 创建一个新的客户端
*/
static function create()
{
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", 'G::onConnect');
$client->on("receive", 'G::onReceive');
$client->on("error", function (swoole_client $cli) {
echo "error\n";
});
$client->on("close", 'G::onClose');
$client->connect('127.0.0.1', 9502);
self::$count++;
self::putLog("CREATE#" . $client->sock . "\$");
}
开发者ID:swoole,项目名称:tests,代码行数:16,代码来源:async_client.php
示例14: dbcp_query
function dbcp_query($sql)
{
$link = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
//TCP方式、同步
$link->connect('127.0.0.1', 55151);
//连接
$link->send($sql);
//执行查询
die(var_dump($link->recv()));
return unserialize($link->recv());
//这行会报错,注释掉了:PHP Notice: unserialize(): Error at offset 0 of 292 bytes in /data/htdocs/mysql.swoole.com/mysqlSwooleCli.php on line 6
//swoole_client类析构时会自动关闭连接
}
开发者ID:suhanyujie,项目名称:digitalOceanVps,代码行数:13,代码来源:mysqlClient.php
示例15: sendData
public function sendData(callable $callback)
{
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function ($cli) {
$cli->send($this->data);
});
$client->on('close', function ($cli) {
});
$client->on('error', function ($cli) use($callback) {
$cli->close();
call_user_func_array($callback, array('r' => 1, 'key' => $this->key, 'error_msg' => 'conncet error'));
});
$client->on("receive", function ($cli, $data) use($callback) {
$cli->close();
call_user_func_array($callback, array('r' => 0, 'key' => $this->key, 'data' => $data));
});
if ($client->connect($this->ip, $this->port, $this->timeout)) {
if (intval($this->timeout) > 0) {
swoole_timer_after(intval($this->timeout) * 1000, function () use($client, $callback) {
if ($client->isConnected()) {
$client->close();
call_user_func_array($callback, array('r' => 2, 'key' => '', 'error_msg' => 'timeout'));
}
});
}
}
}
开发者ID:learsu,项目名称:php-swoole-framework,代码行数:27,代码来源:TcpTestClient.php
示例16: long_tcp
function long_tcp(Benchmark $bc)
{
global $send_data, $package_eof;
static $client = null;
static $i;
static $index;
$start = microtime(true);
if (empty($client)) {
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
$client->set(array('open_eof_check' => true, "package_eof" => $package_eof));
$end = microtime(true);
$conn_use = $end - $start;
$bc->max_conn_time = $conn_use;
$i = 0;
$index = 0;
if (!$client->connect($bc->server_config['host'], $bc->server_config['port'], 2)) {
error:
echo "Error: " . swoole_strerror($client->errCode) . "[{$client->errCode}]\n";
$client = null;
return false;
}
$start = $end;
}
$data = $send_data[$index]["data"] . $package_eof;
if (!$client->send($data)) {
goto error;
}
$end = microtime(true);
$write_use = $end - $start;
if ($write_use > $bc->max_write_time) {
$bc->max_write_time = $write_use;
}
$start = $end;
$i++;
if ($i >= $send_data[$index]["num"]) {
$index++;
}
$ret = $client->recv();
if (empty($ret)) {
echo $bc->pid, "#{$i}", " is lost\n";
return false;
}
$end = microtime(true);
$read_use = $end - $start;
if ($read_use > $bc->max_read_time) {
$bc->max_read_time = $read_use;
}
return true;
}
开发者ID:ErosZy,项目名称:CSF,代码行数:49,代码来源:run.php
示例17: init
public static function init()
{
if (!self::$client) {
$client = new swoole_client(SWOOLE_SOCK_TCP | SWOOLE_KEEP);
if (!$client->isConnected()) {
$client->set(array('open_length_check' => true, 'package_length_type' => 'N', 'package_length_offset' => 0, 'package_body_offset' => 4, 'package_max_length' => 2000000));
if (!$client->connect('127.0.0.1', 8996, 1)) {
// throw new MyException('client connect timeout', ERROR::CONNECTION_TIMEOUT);
return false;
}
}
self::$client = $client;
}
return self::$client;
}
开发者ID:houzhenggang,项目名称:zmail,代码行数:15,代码来源:Client.php
示例18: testSwoole
public function testSwoole()
{
$this->assertTrue(in_array('swoole', get_loaded_extensions()), '缺少swoole extension');
$cfg = (include ROOT_PATH . '/../config/sysconfig.php');
$params = array('ip', 'port');
foreach ($params as $param) {
$this->assertTrue(array_key_exists($param, $cfg['swooleConfig']) && !empty($cfg['swooleConfig'][$param]), 'swoole缺少' . $param . '配置');
}
// 测试连接
$swoole = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
$this->assertTrue($swoole->connect($cfg['swooleConfig']['ip'], $cfg['swooleConfig']['port']), 'swoole连接失败');
// 测试swoole数据传输
$this->assertTrue($swoole->send(json_encode(array('cmd' => 'checkMobi', 'args' => 18611740380.0))), 'swoole send失败');
$this->assertTrue(!empty($swoole->recv()), 'swoole recv失败');
}
开发者ID:nicklos17,项目名称:appserver,代码行数:15,代码来源:ServerTest.php
示例19: startSwoole
public function startSwoole()
{
$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501)) {
} else {
//参照 cli/server控制器理解
$send = array();
//发送命令
$send['cmd'] = 'send';
$send['object'] = '';
$send['method'] = 'callback';
//回调函数的参数
$client->send(json_encode($send));
$receive = $client->recv();
}
}
开发者ID:ilei,项目名称:blog,代码行数:16,代码来源:crawl.php
示例20: exec
private function exec($cmd)
{
$cmd['act'] = 'Telnet';
$client = new \swoole_client(SWOOLE_TCP, SWOOLE_SYNC);
if (!$client->connect(C('SERVICE_IP'), C('SERVICE_PORT'), 1) || !$client->send(json_encode($cmd))) {
return false;
}
$c = 5;
$str = '';
do {
$str .= $client->recv();
$data = json_decode($str, true);
} while ($c-- > 0 && !isset($data['code']));
$client->close();
return $data;
}
开发者ID:picone,项目名称:SwitchManage,代码行数:16,代码来源:ManageController.class.php
注:本文中的swoole_client类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论