其实语言不是问题,关键是格式。WAP PUSH 是什么?(概念解释)
WAP PUSH的概念
所谓推(PUSH)技术是一种基于客户服务器机制、由服务器主动将信息发往客户端的技术,其传送的信息通常是用户事先预订的。同传统的拉(PULL)技术相比,最主要的区别在于前者是由服务器主动向客户机发送信息,而后者则是由客户机主动请求信息。PUSH技术的优势在于信息的主动性和及时性,而弱势则是信息的准确性较差。
PUSH技术在Internet中没能取得大的成功,原因是多方面的。在固定网中计算机等固定设备为用户提供了足够的资源和能力去查找信息所以用户通常将它作为一个浏览信息的窗口,而不是被动的信息接收者。固定网用户对于信息准确性的要求远甚于对其及时性的要求。
而在移动网中,由于存在着网络带宽、移动设备能力以及高昂的资费标准等诸多限制,用户无法像在固定网中一样方便地查找信息,如果将重要的信息主动及时地推送到用户的移动设备上无疑会大大方便用户。移动通信的优点是移动设备能够随时随地接收信息因此PUSH技术可以在移动网中大显身手,WAP PUSH正是PUSH技术和移动通信两者扬长避短相结合的产物。
WAP PUSH是在移动网络中应用的PUSH技术它既具有一般PUSH技术的特点又拥有移动网络的特点。它的系统框架、使用协议和服务方式与固定网上的PUSH技术有很大不同。
WAP PUSH技术结合了PUSH技术的优势和移动通信服务的特性,具有良好的应用前景。将PUSH技术应用于移动通信领域可以产生许多电信增值业务这包括移动中收发电子邮件,随时获得股价信息、天气预报、新闻以及位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性要求比较高,用户希望能够通过手机、PDA等移动设备随时随地地得到该种服务。但是,WAP PUSH技术仍然存在着一些亟待解决的问题,如信息的鉴权与认证、信息的准确性、如何避免垃圾信息等。如何解决好这些问题将是WAP PUSH技术成功的关键。另外,随着GPRS技术和3G无线通信技术的发展,无线信道的带宽将逐步增大,WAP PUSH也将能进一步推送多媒体信息。
function getSMSPush($subject, $url)
{
$pushString = "";
$body = "";
// Content_length Pos
$body .= chr(0x80);
$body .= chr(0xb4);
$body .= chr(0x84);
// Begin Pos
$body .= chr(0x02);
$body .= chr(0x05); //-//WAPFORUM//DTD SI 1.0//EN
$body .= chr(0x6A); //UTF-8
// $body .= chr(0x03); //字符串开始
// $body .= iconv( "GBK", "UTF-8", $subject ); //显示给用户的内容,用utf-8编码。utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)
$body .= chr(0x00); //字符串结束
$body .= chr(0x45); //<si>
$body .= chr(0xC6); //<indication
$body .= chr(0x0C); //href="http://
$body .= chr(0x03); //字符串开始
$body .= iconv( "GBK", "UTF-8", $url ); //显示给用户的内容,用utf-8编码。utf-8编码,英文字符直接用ascii码;中文如果unicode是(二进制)
$body .= chr(0x00); //字符串结束
$body .= chr(0x08); // action=signal-high
$body .= chr(0x01); ; // END( of indication attribute list)
$body .= chr(0x03); //字符串开始
$body .= iconv( "GBK", "UTF-8", $subject ); //实际地址
$body .= chr(0x00); //字符串结束
$body .= chr(0x01); ; // END( of indication attribute list)
$body .= chr(0x01); ; // END( of indication attribute list)
/*
$body .= chr(0x08); // action=signal-high
$body .= chr(0x01); ;
$body .= chr(0x83);
$body .= chr(0x00); //字符串结束
$body .= chr(0x01); //</indication>"
$body .= chr(0x01); //'</si>
*/
$length = strlen($body);
$pud = "";
$pud .= chr(0x72); //transaction id (connectionless WSP)
$pud .= chr(0x06); //'pdu type (06=push)
$pud .= chr(0x0a); //Headers len
$pud .= chr(0x03);
$pud .= chr(0xAE);
$pud .= chr(0x81);
$pud .= chr(0xEA); //content type: application/vnd.wap.sic; charset=utf-8
$pud .= chr(0xaf);
$pud .= chr(0x82);
$pud .= chr(0x8D); //content-length
$udh = "";
$udh .= chr(0x06); //User Data Header Length (6 bytes)
$udh .= chr(0x05); //$udh Item Element id (Port Numbers)
$udh .= chr(0x04); //$udh IE length (4 bytes)
$udh .= chr(0x0B);
$udh .= chr(0x84); //destination port number
$udh .= chr(0x23);
$udh .= chr(0xF0); //origin port number
$pushString = $udh . $pud . $body;
print $pushString;
return $pushString;
}