您好,欢迎访问三七文档
T-3GABS项目网络通信协议设计版本:v1.1日期:2011/03/07更新作者:唐亮(达内集团教学研发部)一,网络通信协议概述1.1通信模式T-3GABS项目的网络通信模式采用无状态的同步通信模式。无状态:在客户端与服务器的一次完整会话过程中,没有始终建立的一条确定的连接,而是在每次客户端需要请求服务器的服务时临时建立连接,并且服务完成,连接则关闭。同步通信:客户端和服务器的通信模式严格遵循请求/应答模式,每一次请求对应一次应答。1.2通信技术实现在T-3GABS项目中客户端与服务器的通信方式采用Socket通信来完成,在Socket中传递Java对象(使用Java对象序列化机制),具体而言,在Socket中传递的是Request(请求)和Response(应答)对象。而Request和Response对象中封装一个Map来保存需要传递的参数,所有参数均需实现java.io.Serializable(可序列化)接口。Request和Response的定义详情如下所示:二,Request(请求)类的定义publicclassRequestimplementsjava.io.Serializable{privatestaticfinallongserialVersionUID=-2017141596837742L;publicstaticfinalintCOMPARE_PROGRAM_VERSION_REQUEST=0x1;//比较版本请求publicstaticfinalintUPDATE_BUSINESS_DATA_REQUEST=0x2;//更新业务数据请求publicstaticfinalintLOGIN_REQUEST=0x3;//登录请求publicstaticfinalintREGISTE_REQUEST=0x4;//注册用户请求publicstaticfinalintSEARCH_FLIGHT_REQUEST=0x5;//查询航班请求publicstaticfinalintORDER_REQUEST=0x6;//订票请求publicstaticfinalintPAYMENT_REQUEST=0x7;//支付请求publicstaticfinalintFIND_ORDER_REQUEST=0x8;//查询订单请求publicstaticfinalintDELETE_ORDER_REQUEST=0x9;//删除订单请求publicstaticfinalintADD_PASSENGER_REQUEST=0xa;//添加乘客请求publicstaticfinalintMODIFY_PASSENGER_REQUEST=0xb;//修改乘客请求publicstaticfinalintREMOVE_PASSENGER_REQUEST=0xc;//删除乘客请求publicstaticfinalintADD_CONTACT_REQUEST=0xd;//添加联系人请求publicstaticfinalintMODFY_CONTACT_REQUEST=0xe;//修改联系人请求publicstaticfinalintREMOVE_CONTACT_REQUEST=0xf;//删除联系人请求publicstaticfinalintFIND_MEMBER_MILEAGE_REQUEST=0x10;//查找会员里程信息请求publicstaticfinalintMODIFY_USER_REQUEST=0x11;//修改用户信息请求publicstaticfinalintMODIFY_USER_PASSWORD_REQUEST=0x12;//修改用户密码请求publicstaticfinalintSET_SUBSCRIPTION_REQUEST=0x13;//设置订阅信息请求publicstaticfinalintQUIT_REQUEST=0x14;//退出请求privateinttype;//请求类型privateMapString,Objectparameters;//参数列表privateUUIDsessinID;//请求对应用户会话编号publicRequest(){parameters=newHashMapString,Object();}publicvoidaddParameter(Stringname,Objectvalue){parameters.put(name,value);}publicObjectgetParameter(Stringname){returnparameters.get(name);}publicMapString,Objectgetparameters(){returnparameters;}publicintgetType(){returntype;}publicvoidsetType(inttype){this.type=type;}publicvoidsetSessionID(UUIDsessionID){this.sessinID=sessionID;}publicUUIDgetSessionID(){returnsessionID;}}三,Response(应答)类的定义publicclassResponseimplementsjava.io.Serializable{/***正常状态,请求得到正确结果*/publicstaticfinalintOK_STATE=201;/***验证错误状态,验证未通过*/publicstaticfinalintVALI_ERROR_STATE=301;/***业务错误状态,根据请求参数不能得到正确结果(业务异常情况)*/publicstaticfinalintBUSS_ERROR_STATE=302;/***系统错误状态,请求导致一个系统错误或异常*/publicstaticfinalintSYS_ERROR_STATE=401;/***应答类型,不同的应答类型对应着不同的参数列表*/privateinttype;/***参数列表*/privateMapString,Objectparameters;/***应答状态*/privateintstatus;/***异常信息*/privateErrorMessageerrorMessage;privatestaticfinallongserialVersionUID=1740286903134427908L;publicResponse(){parameters=newHashMapString,Object();}publicErrorMessagegetErrorMessage(){returnerrorMessage;}publicvoidsetErrorMessage(ErrorMessageerrorMessage){this.errorMessage=errorMessage;}publicMapString,ObjectgetParameters(){returnparameters;}publicObjectgetParameter(Stringname){returnparameters.get(name);}publicvoidaddParameter(Stringname,Objectvalue){parameters.put(name,value);}publicintgetStatus(){returnstatus;}publicvoidsetStatus(intstatus){this.status=status;}publicintgetType(){returntype;}publicvoidsetType(inttype){this.type=type;}}四,请求和应答的参数说明请求编号请求编码请求名称请求参数类型/参数名/参数描述应答参数类型/参数名/参数描述0x1COMPARE_PROGRAM_VERSION比较程序版本String/Version/客户端程序版本String/Version/服务器端程序版本0x2UPDATE_BUSINESS_DATA更新业务数据MapString,String/DataVersions/客户端当前业务数据版本号(Key为数据名;Value为版本号)【1】MapString,String/DataVersions/服务端当前业务数据版本号(Key为数据名;Value为版本号)MapString,MapInteger,Object/BusinessDatas/服务器端业务数据(Key为数据名;Value为数据值)0x3LOGIN_REQUEST登录请求String/UserName/用户登录名String/Password/用户密码的MD5码User/User/成功登录的用户对象UUID/SessionId/用户会话编号0x4REGISTE_REQUEST注册请求User/User/封装的用户对象User/User/注册成功的用户对象0x5SEARCH_FLIGHT_REQUEST查询航班请求String/DepAirportCode/出发机场三字码String/ArrAirportCode/到达机场三字码Date/DepartureDate/出发日期String/CabinClass/舱位int/TripType/旅程类型(单程,往返)Date/ReturnDate/返回日期【2】ListFlight/DepartureFlights/满足条件的去程航班集合ListFlight/ReturnFlights/满足条件的返程航班集合【3】0x6ORDER_REQUEST订票请求Order/Order/订单Integer/OrderId/成功预订的订单号0x7PAYMENT_REQUEST支付请求【4】String/OrderId/订单编号String/CreditCardNum/信用卡号ListTicket/Tickets/成功支付的机票集合0x8FIND_ORDER_REQUEST查询订单请求Date/FromDate/开始日期【5】Date/ToDate/结束日期【5】ListOrder/Orders/该用户指定时间段内订单集合0x9DELETE_ORDER_REQUEST删除订单请求String/OrderId/订单编号无0xaADD_PASSENGER_REQUEST添加乘客请求int/UserID/用户IDPassenger/Passenger/待添加乘客int/PassengerID/成功那个添加的乘客ID0xbMODIFY_PASSENGER_REQUEST修改乘客请求int/UserID/用户IDint/PassengerID/乘客IDPasseneger/Passeneger/新乘客对象ListPassenger/Passengers/当前用户关联的乘客列表0xcREMOVE_PASSENGER_REQUEST删除乘客请求int/UserID/用户IDint/PassengerID/乘客IDListPassenger/Passengers/当前用户关联的乘客列表0xdADD_CONTACT_REQUEST添加联系人请求int/UserID/用户IDContact/Contact/待添加联系人int/ContactID/联系人ID0xeMODFY_CONTACT_REQUEST修改联系人请求int/UserID/用户IDint/ContactID/联系人IDContact/Contact/新联系人对象ListContact/Contacts/当前用户关联的联系人列表0xfREMOVE_CONTACT_REQUEST删除联系人请求int/UserID/用户IDint/ContactID/联系人IDListContact/Contacts/
本文标题:通信协议定义
链接地址:https://www.777doc.com/doc-2017158 .html