论坛首页 Java版 企业应用

基于GPRS无线POS机通信解决方案

浏览 5120 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-05-24
目前我们有这么一个需求:
我们是一家做网上订餐的网站,系统参与者有:
1、无线POS机客户端
2、我们网站
3、基于tcp/ip或者udp协议通信的服务器端程序
4、订餐用户

说明:
订餐用户访问我们的网站,选择他周边所在的餐馆,然后向他喜爱的餐馆订餐,当用户下订单之后我们网站就向指定的这家餐馆发送订单,然后在餐馆那边的无线POS机就会自动把用户下的订单打印出来(通过GPRS无线网络传输),简单需求就是这样子。

问题:
1、餐馆那边的无线POS机那边的POS机是没有固定IP的。(也就是说无线POS机只能是做为客户端连接到服务器程序,网站也是做为客户端连接到服务器端,当有接收到订单就转发到相应的餐馆无线POS机打印)
2、如果是基于tcp/ip长连,那么服务器端程序这边负载很大,可能只能做到1000多个客户端连接。
3、如果是基于tcp/ip短连接的话,由于无线POS机这边没有固定IP,服务器端无法识别每个客户端,那么就无法向哪家餐馆发送正确的订单数据包。
4、如果是基于udp的话,同样服务器端也不能识别无线POS机客户端,同样不能做到正确的向指定的无线POS机客户端发送数据。

其实这个原理很类似于QQ,用户机器上装的QQ客户端也是没有固定IP的,但A用户向B用户发送信息能够知道信息是发给谁的。

不知道大家谁有这方面的经验?怎么做比较好~


我理想中的实现方案流程如下:

  A(无线客户端/GPRS无线POS机)
   
  B(服务器,IP固定)  
   
  C(局域网客户端)

A上线通知B,B记录A的信息:peerip,peerport;trueip,trueport;餐馆的ID
C发订单数据给B,B把C的订单转发给A

在这种方案下如何保证C的订单能够正确发送给A,会不会存在NAT问题。
   
最后更新时间:2008-05-20
pos主动发送,
主动轮询查询新消息
   
0 请登录后投票
最后更新时间:2008-05-20
alfred.w 写道
pos主动发送,
主动轮询查询新消息


如果是这样子的话,那我在POS机客户端直接写个程序不停的轮询我这边的http服务器请求就行啦。
   
0 请登录后投票
最后更新时间:2008-05-20
你的这些问题都是基于一个原因:客户端没有固定IP,建议你看看GPRS无线虚拟专网(APN),这些问题都迎刃而解了。
当然轮询也是一个解决方案。
   
0 请登录后投票
最后更新时间:2008-05-20
http://group.bj.chinamobile.com/index/solution/products/data/wxddn/
这里有详细介绍,这样你的终端就相当于你们内网的一台pc,然后怎么处理就由着你了:)
   
0 请登录后投票
最后更新时间:2008-05-20
GPRS无线虚拟专网(APN),那是不是我的组网方式及硬件设备有一定的要求才行?
   
0 请登录后投票
最后更新时间:2008-05-20
目前想到一种方案是:

POS机客户端有一个程序按照一定的时间间隔来轮询扫描我们服务器上提供的http服务器,不停的给http服务器发送请求,http服务器来响应请求,这种方式觉得可以满足目前的需要。

不知还有没其它更好的方式?
   
0 请登录后投票
最后更新时间:2008-05-21

不知像jetty这样的实现了NIO通信的server能不能帮到你,jetty可以让你长连接更多的客户端

   
0 请登录后投票
最后更新时间:2008-05-21
GPRS无线虚拟专网(APN),那是不是我的组网方式及硬件设备有一定的要求才行?
------------------
不需要,你可以打移动公司的电话问问,这个需求通过APN很容易解决,不需要那么费劲的想解决办法。
   
0 请登录后投票
最后更新时间:2008-05-21
wtusmchen 写道
GPRS无线虚拟专网(APN),那是不是我的组网方式及硬件设备有一定的要求才行?
------------------
不需要,你可以打移动公司的电话问问,这个需求通过APN很容易解决,不需要那么费劲的想解决办法。


但这个东西如果要跟移动公司合作的话,费用是不是很高?
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐