本文整理汇总了PHP中Subscriber::setSubtopic方法的典型用法代码示例。如果您正苦于以下问题:PHP Subscriber::setSubtopic方法的具体用法?PHP Subscriber::setSubtopic怎么用?PHP Subscriber::setSubtopic使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Subscriber
的用法示例。
在下文中一共展示了Subscriber::setSubtopic方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
public function execute(Request $request)
{
if (LOGGING) {
Log::log(LoggingConstants::DEBUG, "commandmessage " . $this->operation . " operation");
}
/*Object*/
$returnValue = null;
if ($this->operation == "0") {
/*IDestination*/
$destObj = ORBConfig::getInstance()->getDataServices()->getDestinationManager()->getDestination($this->destination);
/*Hashtable*/
$headers = array();
if ($destObj != null) {
/*String*/
$selectorName = $this->headers["DSSelector"];
/*String*/
$subtopic = $this->headers["DSSubtopic"];
/*String*/
$dsId = $this->headers["DSId"];
/*Subscriber*/
$subscriber = new Subscriber($selectorName, $destObj);
$subscriber->setDSId($dsId);
$subscriber->setSubtopic($subtopic);
$guid = new GUID();
$subscriber->setClientId($guid->toString());
SubscriptionsManager::getInstance()->addSubscriber($dsId, $subscriber);
$destObj->getServiceHandler()->handleSubscribe($subscriber);
} else {
/*String*/
$error = "Unknown destination " . $this->destination . ". Cannot handle subscription request";
if (LOGGING) {
Log::log(LoggingConstants::ERROR, $error);
}
return new ErrMessage($this->messageId, new Exception($error));
}
return new AckMessage($this->messageId, $clientId, null, $headers);
} else {
if ($this->operation == "1") {
/*String*/
$dsId = $this->headers["DSId"];
/*Subscriber*/
$subscriber = SubscriptionsManager::getInstance()->getSubscriber($dsId);
if ($subscriber == null) {
return new ErrMessage($this->messageId, new Exception("Unable to unsubscribe - unknown client"));
}
/*IDestination*/
$destination = $subscriber->getDestination();
$destination->getServiceHandler()->handleUnsubscribe($subscriber);
SubscriptionsManager::getInstance()->removeSubscriber($dsId);
} else {
if ($this->operation == "2") {
/*String*/
$dsId = $this->headers["DSId"];
/*Subscriber*/
$subscriber = SubscriptionsManager::getInstance()->getSubscriber($dsId);
if ($subscriber == null) {
/*String*/
$error = "Invalid client id " . $dsId;
if (LOGGING) {
Log::log(LoggingConstants::ERROR, $error);
}
return new ErrMessage($this->messageId, new Exception($error));
}
/*IDestination*/
$destination = $subscriber->getDestination();
//Log::log( LoggingConstants::INFO, "Getting messages from " . $destination->getServiceHandler() );
/*ArrayList*/
$messages = $destination->getServiceHandler()->getMessages($subscriber);
$subscriber->setLastRequestTime(microtime(true));
if (count($messages) == 0) {
return new AckMessage(null, null, null, array());
}
return $this->createCmdMessage("4", $messages);
} else {
if ($this->operation == "5") {
/*Hashtable*/
$headers = array();
$guid = new GUID();
$headers["DSId"] = $guid->toString();
return new AckMessage($this->messageId, $this->clientId, null, $headers);
} else {
if ($this->operation == "9") {
ThreadContext::setCallerCredentials(null);
} else {
if ($this->operation == "8") {
$arr = $this->body->getBody();
$adaptingType = $arr[0];
$authData = split(":", base64_decode($adaptingType->defaultAdapt()));
$credentials = new Credentials($authData[0], $authData[1]);
$authHandler = ORBSecurity::getAuthenticationHandler(ThreadContext::getORBConfig());
if (LOGGING) {
Log::log(LoggingConstants::DEBUG, "got auth handler " . get_class($authHandler));
}
if ($authHandler == null) {
$errorMessage = new ErrMessage($this->messageId, new ServiceException("Missing authentication handler"));
$errorMessage->faultCode = "Client.Authentication";
return $errorMessage;
}
try {
$authHandler->checkCredentials($credentials->getUserId(), $credentials->getPassword(), $request);
//.........这里部分代码省略.........