/** * Start process * @param array $arg * @return int|void * @this_server Synchronization * @messagesToSend ForwardedMessage * @TcpSocketClientConnector TcpSocketClientConnector */ public function run($arg) { $this_server = new Synchronization(); $messagesToSend = ForwardedMessage::model()->getNewMessages(); foreach ($messagesToSend as $message) { if (!is_object($message)) { continue; } $TcpSocketClientConnector = new TcpSocketClientConnector($this->_logger, 'tcp', $this_server->remote_server_ip, $this_server->remote_server_port); $TcpSocketClientConnector->connect($timeout = 5); $message = serialize(array('message' => $message->message->message)); $TcpSocketClientConnector->sendMessage($message, $timeout = 5); // $inputDataFromServer = $TcpSocketClientConnector->readDataFromServer(); // $serverData = unserialize($inputDataFromServer); $TcpSocketClientConnector->disconnect(); } // $this->_logger->log(__METHOD__ .' inputDataFromServer: '. $inputDataFromServer); // $this->_logger->log(__METHOD__ .' serverData: '.print_r( $serverData,1)); }
protected function dataExchange() { $TcpSocketClientConnector = new TcpSocketClientConnector($this->_logger, 'tcp', $this->_synchronization->remote_server_ip, $this->_synchronization->tcp_client_command_port); // send to server $TcpSocketClientConnector->onSentMessage = function ($coming_message) { // $this->_logger->log(' $comming_message '.print_r($coming_message,1)); $answer = 'FALSE'; $exchangeArray = array(ExchangeODSS::getInstance()); foreach ($exchangeArray as &$exchangeItem) { if ($exchangeItem->init($coming_message)) { $answer = $exchangeItem->clientMessage(); } else { $exchangeItem->getErrors(); $this->_logger->log(' ERRORS ' . print_r($exchangeItem->getErrors(), 1)); } } return $answer; }; $TcpSocketClientConnector->onCloseConnection = function ($serverMessage) { $this->_logger->log(' $serverMessage ' . print_r(@unserialize($serverMessage), 1)); $exchangeArray = array(ExchangeODSS::getInstance()); foreach ($exchangeArray as &$exchangeItem) { if ($exchangeItem->init($serverMessage)) { if ($exchangeItem->closeConnection()) { return true; } } } return false; }; //comes messages $TcpSocketClientConnector->onReceiveDataMessage = function ($message) { //$this->_logger->log(__METHOD__.' $message : '. print_r($message,1)); $validMessage = "FALSE"; $exchangeArray = array(ExchangeODSS::getInstance()); foreach ($exchangeArray as &$exchangeItem) { if ($exchangeItem->init($message)) { $validMessage = $exchangeItem->returnReceivedMessage(); } else { $exchangeItem->getErrors(); $this->_logger->log(' ERRORS ' . print_r($exchangeItem->getErrors(), 1)); } } return $validMessage; }; $exchangeArray = array(ExchangeODSS::getInstance()); foreach ($exchangeArray as &$exchangeItem) { $TcpSocketClientConnector->connect($timeout = 1); $messageToServer = $exchangeItem->clientMessage(); $this->_logger->log(' $messageToServer ' . print_r($messageToServer, 1)); $TcpSocketClientConnector->sendMessage($messageToServer, $timeout = 1); } }