BiHttp,基于HTTP协议的双向通讯包

有时候,我们多个WEB应用服务需要通讯,如果采用socket方式进行通信,我们自己socket server 不能利用WebService容器已有的功能,比如线程管理等。如果采用SOAP方式进行通讯,需要Server端要能够访问到Client端得WebService,如果Client在内网,这往往会比较麻烦。

BiHttp是为了解决这个问题而写的一个通讯包,基于HTTP pull技术实现。Server端可以是任意的Java WebService,Client端可以是WebService,也可以是JAVA Application。

BiHttp(Beta)实现了

1)客户端向服务器端发送同步请求/异步请求

2)服务器端向客户端发送同步请求/异步请求

3)多客户端支持(设定不同的客户端ID)

4)客户端掉线检测

5)客户端掉线重连

 

Server端配置web.XML

	<servlet>
		<servlet-name>BiHttpServlet</servlet-name>	
		<servlet-class>com.msbai.net.http.BiHttp.server.BiHttpServlet</servlet-class>
		<init-param>
			<param-name>listener</param-name>
			<param-value>com.msbai.net.http.BiHttp.listener.BaseServerListener</param-value>
			<!-- 事件监听类,必须是BaseServerListener或者其子类-->
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>BiHttpServlet</servlet-name>
		<url-pattern>/BiHttpServlet</url-pattern>
	</servlet-mapping>	

Server端主要代码:

			BiHttpServer server = BiHttpServer.getInstance();
			try {
				int packetId = server.SendMsgReqAsync(regId, msg);//发送异步请求
				String response = server.SendMsgReqSync(regId, msg);//发送同步请求
				server.SendMsgResAsync(regId, msg, msgId);//发送异步响应
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return ;
			} catch (TimeoutException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

 

Client端主要代码:

		BiHttpClient client = new BiHttpClient(
				serverurl,new BaseClientListener() ,"id","validateMsg");
 
		try {  
			client.connect();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (ServerException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}  

		try {
			System.out.println(client.SendMsgReqAsync("MsgReqAsync"));//发送异步请求
			System.out.println(client.SendMsgReqSync("MsgReqSync"));//发送同步请求	
			client.SendMsgResAsync("MsgResAsync", "1");//发送异步响应
			
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (ServerException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值