本文整理汇总了PHP中swoole_client::isConnected方法的典型用法代码示例。如果您正苦于以下问题:PHP swoole_client::isConnected方法的具体用法?PHP swoole_client::isConnected怎么用?PHP swoole_client::isConnected使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类swoole_client
的用法示例。
在下文中一共展示了swoole_client::isConnected方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: client
/**
* connect to swoole server then send data
*
* @return string
*/
public static function client()
{
$return = FALSE;
$client = new \swoole_client(SWOOLE_SOCK_TCP);
// set eof charactor
$client->set(['open_eof_split' => TRUE, 'package_eof' => self::EOFF]);
// listen on
$client->on('connect', '\\CI_Swoole\\Client::on_connect');
$client->on('receive', '\\CI_Swoole\\Client::on_receive');
$client->on('error', '\\CI_Swoole\\Client::on_error');
$client->on('close', '\\CI_Swoole\\Client::on_close');
// connect
$client->connect(self::HOST, self::PORT, 10);
// send data
if ($client->isConnected()) {
$post = serialize(static::$post);
$post .= self::EOFF;
$issend = $client->send($post);
}
// receiv data
if (isset($issend) && $issend) {
$return = @$client->recv();
$return = str_replace(self::EOFF, '', $return);
$return = unserialize($return);
}
$client->close();
unset($client);
return $return;
}
示例2: 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'));
}
});
}
}
}
示例3: run
public function run(Promise &$promise)
{
$cli = new \swoole_client(SWOOLE_TCP, SWOOLE_SOCK_ASYNC);
$urlInfo = parse_url($this->url);
$timeout = $this->timeout;
if (!isset($urlInfo['port'])) {
$urlInfo['port'] = 80;
}
$httpParser = new \HttpParser();
$cli->on("connect", function ($cli) use($urlInfo, &$timeout, &$promise) {
$cli->isConnected = true;
$host = $urlInfo['host'];
if ($urlInfo['port']) {
$host .= ':' . $urlInfo['port'];
}
$req = array();
$req[] = "GET {$this->url} HTTP/1.1\r\n";
$req[] = "User-Agent: PHP swAsync\r\n";
$req[] = "Host:{$host}\r\n";
$req[] = "Connection:close\r\n";
$req[] = "\r\n";
$req = implode('', $req);
$cli->send($req);
});
$cli->on("receive", function ($cli, $data = "") use(&$httpParser, &$promise) {
$ret = $httpParser->execute($data);
if ($ret !== false) {
Timer::del($cli->sock);
$cli->isDone = true;
if ($cli->isConnected()) {
$cli->close();
}
$promise->accept(['http_data' => $ret]);
}
});
$cli->on("error", function ($cli) use(&$promise) {
Timer::del($cli->sock);
$promise->accept(['http_data' => null, 'http_error' => 'Connect error']);
});
$cli->on("close", function ($cli) use(&$promise) {
});
if ($this->proxy) {
$cli->connect($this->proxy['host'], $this->proxy['port'], 0.05);
} else {
$cli->connect($urlInfo['host'], $urlInfo['port'], 0.05);
}
$cli->isConnected = false;
if (!$cli->errCode) {
Timer::add($cli->sock, $this->timeout, function () use($cli, &$promise) {
@$cli->close();
if ($cli->isConnected) {
$promise->accept(['http_data' => null, 'http_error' => 'Http client read timeout']);
} else {
$promise->accept(['http_data' => null, 'http_error' => 'Http client connect timeout']);
}
});
}
}
示例4: __destruct
public function __destruct()
{
Trace::debug("*********cli {$this->fd} __destruct");
if (isset($this->cli)) {
$this->cli->isConnected() && $this->cli->close();
unset($this->cli);
}
unset($this->queue);
}
示例5: 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;
}
示例6: command
/**
* 执行redis指令
* @param $cmd
* @param $callback
*/
function command($cmd, $callback)
{
/**
* 如果已经连接,直接发送数据
*/
if ($this->client->isConnected()) {
$this->client->send($cmd);
} else {
$this->wait_send = $cmd;
}
$this->callback = $callback;
//从空闲连接池中移除,避免被其他任务使用
$this->redis->lockConnection($this->client->sock);
}
示例7: exit
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
//同步阻塞
if (!$client->connect('127.0.0.1', 9501, -1)) {
exit("connect failed. Error: {$client->errCode}\n");
}
for ($i = 0; $i < 100; $i++) {
//if ($client->sendfile(__DIR__.'/test.txt') === false)
if ($client->send(str_repeat("A", 8000)) === false) {
echo "send failed. Error: {$client->errCode}\n";
break;
}
usleep(20000);
}
sleep(10000);
//if ($client->sendfile(__DIR__.'/test.txt') === false)
if ($client->send(str_repeat("A", 600)) === false) {
echo "send failed. Error: {$client->errCode}\n";
break;
}
$data = $client->recv(7000);
if ($data === false) {
echo "recv failed. Error: {$client->errCode}\n";
break;
}
var_dump($client->isConnected());
//var_dump($data);
//$data = $client->recv(7000);
var_dump($data);
$client->close();
var_dump($client->isConnected());
示例8: isConnected
public function isConnected()
{
if (!$this->client->isConnected()) {
$this->setConnected(false);
}
}
示例9: onError
/**
* @brief 发生错误时的回调
* @param \swoole_client $client
*/
public function onError(\swoole_client $client)
{
$error = array('errno' => \Aha\Network\Client::ERR_UNEXPECT, 'errmsg' => array('errCode' => $client->errCode, 'error' => socket_strerror($client->errCode)), 'package' => $this->_package);
echo "Redis onError![error]" . serialize($error) . PHP_EOL;
$callback = $this->_callback;
$arguments = $this->_arguments;
$this->_free();
if ($client->isConnected()) {
$client->close();
}
try {
call_user_func($callback, false, $arguments['callback'], $this, 'Redis onError');
} catch (\Exception $ex) {
echo "Redis onError callback![exception]" . $ex->getMessage() . PHP_EOL;
}
}
示例10: onError
/**
* @brief 发生错误时的回调
* @param \swoole_client $client
*/
public function onError(\swoole_client $client)
{
$response = array('errno' => \Aha\Network\Client::ERR_UNEXPECT, 'errmsg' => array('errCode' => $client->errCode, 'error' => socket_strerror($client->errCode)), 'requestId' => $this->_requestId, 'const' => microtime(true) - $this->_const, 'data' => array());
if (is_callable($this->_callback)) {
try {
call_user_func($this->_callback, $response);
} catch (\Exception $ex) {
echo "Client onConnect send callback failed![exception]" . $ex->getMessage() . PHP_EOL;
}
}
if ($client->sock && $client->isConnected()) {
$client->close();
} else {
$this->_free();
}
}