基于数字电视短信互联网平台的互动节目投票系统的设计应用Word文档下载推荐.docx
《基于数字电视短信互联网平台的互动节目投票系统的设计应用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于数字电视短信互联网平台的互动节目投票系统的设计应用Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
2.2认证负载部署图:
图4(认证服务器承载几十万机顶盒每天的认证数据请求)
2.3页面负载部署图
图5(EPG服务器承载几十万机顶盒每天的页面浏览数据请求)
2.4主要技术创新点
●强大的互动性:
观众可实时参与直播节目互动,观众的投票结果实时在电视画面中得到反馈。
●多样化的参与方式:
观众可通过手机短信、数字交互电视、互联网站等多种方式参与节目互动。
●稳定的访谈环境:
考虑到直播互动需在稳定、高速、安全的环境下开展,系统可采用负载均衡和集群技术,避免了单台服务器的资源和应用程序出现故障造成的系统停用,也可根据实际的需求,添加更多的服务器,来提高集群的计算能力和网络的可用性,对资源和应用程序提供了高可用性、可扩展性和可管理性。
在大规模的用户并发的情况下,保障系统的高稳定性。
强大的数据收集与分析:
提供观众投票、抽奖、问卷等工具收集用户数据;
强大的收视报告能力
3、终端效果显示
双向用户选择相应的按钮,再选择‘提交’
游动字幕实时显示参与者反馈的内容和结果。
图6(在实际频道的说法栏目中应用情况)
频道实时显示参与者反馈的内容和结果。
图7(调查数据显示)
有投票客户端软件查询产生随机获奖手机号、机顶盒号
图8(节目末尾,产生幸运观众)
4、部分代码
4.1机顶盒STBIDWSDL定义如下:
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
wsdl:
definitionsxmlns:
impl="
"
xmlns:
intf="
apachesoap="
http:
//xml.apache.org/xml-soap"
tns="
wsdlsoap="
//schemas.xmlsoap.org/wsdl/soap/"
soap="
soapenc="
//schemas.xmlsoap.org/soap/encoding/"
xsd="
//www.w3.org/2001/XMLSchema"
tns2="
wsdl="
//schemas.xmlsoap.org/wsdl/"
xmlns="
targetNamespace="
<
types>
<
schemaxmlns="
<
importnamespace="
/>
/schema>
/wsdl:
messagename="
STBAuthenticationRequest"
partname="
username"
type="
xsd:
string"
authid"
stbid"
ip"
mac"
message>
STBAuthenticationResponse"
authresult"
iptvtoken"
EPGDomain"
UpgradeDomain"
ManagementDomain"
NTPDomain"
StatusInformSwitch"
boolean"
StatusInformStart"
int"
StatusInformInterval"
LogInformSwitch"
portTypename="
authenticationPortType"
operationname="
STBAuthentication"
documentation>
ServicedefinitionoffunctionSTBAuthentication<
/documentation>
inputmessage="
tns:
outputmessage="
/operation>
portType>
bindingname="
authentication"
wsdlsoap:
bindingstyle="
rpc"
transport="
//schemas.xmlsoap.org/soap/http"
operationstyle="
input>
<
soap:
bodyuse="
encoded"
encodingStyle="
namespace="
/input>
output>
/output>
binding>
servicename="
onewaveinccorporationservicedefinition<
portname="
binding="
addresslocation="
//ADSHost:
ADSPort"
/port>
service>
definitions>
4.2认证回写部分代码:
STBWriteBackResultRequest"
writebackresult"
writebackresultPortType"
STBWriteBackResult"
ServicedefinitionoffunctionSTBWriteBackResult<
4.3机顶盒投票界面部分代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingCJL.Interaction.Business;
usingCJL.Interaction.Model;
namespaceCJL.Interaction.Web
{
publicpartialclassTV:
System.Web.UI.Page
{
privatestringstbId=HttpContext.Current.Request.QueryString["
]==null?
"
:
HttpContext.Current.Request.QueryString["
].ToString().ToUpper();
privatestringserviceId=HttpContext.Current.Request.QueryString["
serviceid"
ConfigurationManager.AppSettings["
DefaultServiceId"
]:
].ToString();
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
ltlServiceId.Text=serviceId;
BindInteractionData();
}
ShowResult();
}
privatevoidBindInteractionData()
intinteractionId;
InteractionInfointeraction;
int.TryParse(Request.QueryString["
topic"
],outinteractionId);
try
if(interactionId>
0)
interaction=InteractionBiz.GetInteractionInfo(interactionId);
else
interaction=InteractionBiz.GetLatestInteraction();
if(interaction!
=null)
{
lblInteractionTitle2.Text=interaction.Title;
hidInteractionId.Value=interaction.Id.ToString();
hidInteractionCode.Value=interaction.Code;
rblInteraction.DataSource=interaction.Options;
rblInteraction.DataBind();
InteractionInfopreviousInteraction=InteractionBiz.GetPreviousInteraction(interaction.Id);
if(previousInteraction!
{
ltlPreviousTopic.Text+="
上期话题:
+previousInteraction.Title;
if(!
String.IsNullOrEmpty(previousInteraction.PrizeWinner))
ltlPreviousTopic.Text+="
中奖名单:
+previousInteraction.PrizeWinner+"
。
;
}
}
catch
lblReturnMsg.Text="
系统异常,请稍后重试!
//throw;
privatevoidShowResult()
int.TryParse(hidInteractionId.Value,outinteractionId);
repResult.DataSource=InteractionBiz.GetStatistic(interactionId);
repResult.DataBind();
protectedvoidimgSubmit_Click(objectsender,ImageClickEventArgse)
stringcode=hidInteractionCode.Value;
intinteractionId=Convert.ToInt32(hidInteractionId.Value);
stringname=stbId;
stringcontent=rblInteraction.SelectedValue;
string.IsNullOrEmpty(code)&
&
!
string.IsNullOrEmpty(content)&
string.IsNullOrEmpty(name))
InteractionMessageInfoim=newInteractionMessageInfo();
im.Code=code;
im.InteractionId=interactionId;
im.Content=content;
im.Name=name;
im.SendDateTime=DateTime.Now;
intreturnCode;
try
returnCode=InteractionMessageBiz.AddMessage(im);
switch(returnCode)
case-1:
lblReturnMsg.Text="
您已参与此话题,请勿重复投票!
break;
case2:
投票成功,感谢您的参与!
}
catch
lblReturnMsg.Text="
protectedvoidrepResult_ItemDataBound(objectsender,RepeaterItemEventArgse)