private function _gen_connected_frame()
 {
     $ack = new BStompConnectedFrame();
     $ack->session_id = 'id-for-unittest';
     $ack->session_message_id = 9527;
     $ack->store();
     $good = $ack->buffer();
     // bad frame
     $bad_ack = new BStompReceiptFrame();
     $bad_ack->receipt_id = 'bad-id';
     $bad_ack->store();
     $bad = $bad_ack->buffer();
     return array('good' => $good, 'bad' => $bad);
 }
 /**
  * 向终端发送CONNECT命令
  */
 private function _stomp_connect()
 {
     // 发送CONNECT
     $cmd = new BStompConnectFrame();
     $cmd->role = $this->role;
     $cmd->session_id = $this->session_id;
     $cmd->topic_name = $this->topic_name;
     if (!$this->send($cmd)) {
         BigpipeLog::warning("[stomp connect error]");
         return false;
     }
     // 接收CONNECTED
     $res_body = $this->receive();
     if (null === $res_body) {
         BigpipeLog::warning("[stomp receive connected error]");
         return false;
     }
     // parse CONNECTED
     $ack = new BStompConnectedFrame();
     if (!$ack->load($res_body)) {
         BigpipeLog::warning('[stomp parse connected frame error][cmd_type:' . $ack->command_type . '][msg:' . $ack->last_error_message() . ']');
         return false;
     }
     // 更新session id和session message id
     $this->session_id = $ack->session_id;
     $this->session_message_id = $ack->session_message_id + 1;
     return true;
 }