コード例 #1
0
ファイル: CwxMqPoco.class.php プロジェクト: burstas/cwinux-mq
 /**
 * 打包recv_data
 *
 * @param int $taskId
 s	 * @param string $data
 * @param integer $group
 * @param string $user
 * @param string $passwd
 * @param string $sign
 * @param boolean $zip
 * @return string
 */
 function packRecvData($taskId, $data, $group = null, $user = null, $passwd = null, $sign = null, $zip = null)
 {
     $dataArr = array();
     $dataArr[CWX_MQ_DATA] = $data;
     $dataArr[CWX_MQ_GROUP] = $group;
     $dataArr[CWX_MQ_USER] = $user;
     $dataArr[CWX_MQ_PASSWD] = $passwd;
     $kvPackage = CwxPackage::toPack($dataArr);
     //签名
     if ($sign == CWX_MQ_CRC32) {
         $crc32 = crc32($kvPackage);
         $crc32 = pack('L', $crc32);
         $dataArr = array();
         $dataArr[CWX_MQ_CRC32] = $crc32;
         $kvPackage .= CwxPackage::toPack($dataArr);
     } else {
         if ($sign == CWX_MQ_MD5) {
             $md5 = md5($kvPackage, true);
             $dataArr = array();
             $dataArr[CWX_MQ_MD5] = $md5;
             $kvPackage .= CwxPackage::toPack($dataArr);
         }
     }
     //压缩
     if ($zip == true) {
         $kvPackage = gzcompress($kvPackage);
         $header = new CwxMsgHead(MSG_TYPE_RECV_DATA, strlen($kvPackage), $taskId, 2, $this->version);
     } else {
         $header = new CwxMsgHead(MSG_TYPE_RECV_DATA, strlen($kvPackage), $taskId, null, $this->version);
     }
     //打包
     $result = $header->toNet() . $kvPackage;
     return $result;
 }