[MMS]彩信MM7_SubmitReq报文
用.Net发彩信好像目前查不到什么开源的代码示例,目前移动提供了Java版的API,为啥没有.Net版本呢?鄙视.Net啊???最近研究了一下,发现这玩意其实就是Httppost了。大致过程是这样的:下行彩信的时候将构造好的SubmitReq报文(SubmitReq相对是最复杂的,因为一般它都是一个Multipart)Httppost给彩信网关,彩信网关返回响应SubmitRsp,这个响应就是通常说的回执。最后,状态报告(DeliverReq),由网关主动Httppost给发送方。由于没有找到.Net版的API,所以只能根据协议文档,和反编译Java版的API去写,其实主要的工作就是完成各种请求的编码(可以简单理解为对象->报文)和解码(可以简单理解为报文->对象)。
短信和彩信其实过程都很类似:给网关发送消息的时候编码,接收网关消息的时候解码。但是搞不懂,为啥MM7协议的文档写如此不全(可能我从网上下到的都是不全/或者就是移动太懒惰很多东西就是描述不清楚,相对短信CMPP协议描述文档,彩信协议文档真的差很多啊),也搞不懂,为啥彩信不像短信那样去基于Socket去做(基于Socket去搞,连接建立好之后,Client可以给Server发消息,Server也可以给Client发消息,多方便啊!),非得搞成Httpost的,搞得发送方要么建立一个IIS站点去给网关Httppost(据我说知,确实很多人这样做)或者搞一个HttpListener去监听(目前我这边写的服务用的HttpListener,总觉得IIS那玩意稳定性不靠谱,也不方便做负载)。另外MM7协议文档中,也没有关于滑动窗口做什么描述,CMPP协议文档是专门提到了滑动窗口,并明确建议滑动窗口大小为16。据我说知,好像很多人做彩信服务,都是同步的Httppost,所以根本不用考虑滑动窗口,目前我这边做的服务,采用异步Httppost然后用流控+滑动窗口去控制发送。因为,目前写这个服务,将来需要应对800万左右/天的彩信下行,效率还是得考虑好。之前写的一个短信下发服务,几套服务将来需要支持到5000万/天左右的下行(由于前期只分省接了7个省,目前3套服务每天约1500万的下行,不过看来服务本省消耗资源非常少,过短时间计划31省全部接入,估计问题不大吧),所感觉异步Send+滑动窗口还是非常有必要的。
下面把最复杂的SubmitReq报文帖一下:
--9e3de00d-e7cd-4a43-afea-2297df0f8000 Content-ID:"d28d2fc4-2a6d-42c1-9a00-ef4281000f0f" Content-Type:text/xml;charset="utf-8" <?xml version='1.0'?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header> <mm7:TransactionID env:mustUnderstand="1" xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0">fac52fc9-9051-48e0-a957-742e83dae009</mm7:TransactionID> </env:Header> <env:Body> <mm7:SubmitReq xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"> <MM7Version>6.3.0</MM7Version> <SenderIdentification> <VASPID>123456</VASPID> <VASID>10658098</VASID> <SenderAddress>10658098</SenderAddress> </SenderIdentification> <Recipients> <To> <Number>138123456789</Number> </To> <Cc></Cc> <Bcc></Bcc> </Recipients> <ServiceCode>HELP</ServiceCode> <TimeStamp>2012-04-28T14:51:09+08:00</TimeStamp> <DeliveryReport>True</DeliveryReport> <ReadReply>False</ReadReply> <Priority>Normal</Priority> <Subject>彩信主题</Subject> <ChargedParty>Neither</ChargedParty> <DistributionIndicator>True</DistributionIndicator> </mm7:SubmitReq> </env:Body> </env:Envelope> --9e3de00d-e7cd-4a43-afea-2297df0f8000 Content-Type:multipart/related;boundary="6fec7cb4-8319-479d-bf36-5c9d098f06b7";start="<3f9d0e4f-d951-4621-9694-66b75eb3c927> " --6fec7cb4-8319-479d-bf36-5c9d098f06b7 Content-Location:"mms.smil" Content-ID:"3f9d0e4f-d951-4621-9694-66b75eb3c927" Content-Type:application/smil;name="<mms.smil> " <smil> <head> <layout> <root-layout height="208" width="176" ></root-layout> <region id="image" top="0" left="0" height="50" width="100" fit="hidden"></region> <region id="text" top="50" left="0" height="50" width="100" fit="hidden"></region> </layout> </head> <body> <par dur="30000ms"> <img region="image" src="00.jpg"></img> <text region="text" src="00.txt"></text> </par> </body> </smil> --6fec7cb4-8319-479d-bf36-5c9d098f06b7 Content-Location:"00.jpg" Content-ID:"00.jpg" Content-Type:image/jpeg;name="<00.jpg> " Content-Transfer-Encoding:base64 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 --6fec7cb4-8319-479d-bf36-5c9d098f06b7 Content-Location:"00.txt" Content-ID:"00.txt" Content-Type:text/plain;charset="utf-8";name="<00.txt>" 20120111编辑短语 --6fec7cb4-8319-479d-bf36-5c9d098f06b7-- --9e3de00d-e7cd-4a43-afea-2297df0f8000--