【练习代码】试用百度BAE和练手jetty continuation的副成品 —— 一个简陋的WEB版LBS聊天应用...

最近写了个测试小应用,是试用百度BAE和练手jetty continuation的副成品,一个简陋的WEB版LBS聊天应用聊天应用。

 

 

简介

----

* 首先需要说明,我最初的想法以失败告终。

 

* 原本的目标是在BAE上面做一个WEB版的LBS聊天应用,还美其名曰“一圈人”(后面会介绍一圈人

的由来)。目前半成品状态,本地能跑通。

 

* 几周前,我偶然发现BAE可以免费用用JVM(至少当前可以,以后就不知道了),且servlet容器

是jetty,于是萌生了一个想法,基于jetty的continuation做个WEB版的LBS即时聊天应用。顺

便还可以练手long polling相关的程序开发,毕竟我还没做过。经过一周多时间晚上和周末的努

力,程序的基本逻辑已在本地完成了测试,但放到BAE上运行时发现,使用continuation居然报

错了!咨询了BAE客服,确认了目前暂不支持continuation,只能作罢,所以开头说了“我最初的

想法以失败告终”。

 

* 这个Demo版的程序源码 ( https://github.com/auzll/zquan ) 就放出来好了,仅供技术上学习

和参考,禁止商用。因程序中所使用的百度地图API、前后端的部分依赖库或功能会有版权方面的

问题。如有商用需要,请联系相关版权方咨询。

 

 

 

程序概述

--------

* 语言和运行环境:java,jdk 1.6+,jetty 8.x

 

* 主要依赖库:

     后端:IOC用了我最熟悉的Guice,json插件用了阿里巴巴开源的fastjson,日志用log4j

     前端:主要就是满街泛滥的bootstrap

 

* 程序逻辑很简单:目前只有基本的聊天,非常简单(参考了jetty的例子来改的),但是BAE不支

持continuation,于是这个最基本的聊天功能都无法实现,所以程序就没再进一步做开发了。

(jetty的例子 http://download.eclipse.org/jetty/stable-7/xref/com/acme/ChatServlet.html )

 

* LBS聊天策略:基于Geo Hash算法,转化经纬度,转化结果值相同的就当做同一个区域内来处

理,此区域内的人可以在一起聊天。

 

* 经纬度获取:通过百度地图API,先从IP地址获取城市地址,再从城市地址转换为经纬度。目前

貌似没办法直接转换,也许是我没找到吧。

 

 

 

“一圈人”这个名字的由来

---------------------

* 大家应该都用过“地图检索”功能吧?类似(http://developer.baidu.com/map/static/img/js_fn6.jpg),

从图片中能看到一个蓝色小圆圈表示附近的区域,而我想做的就是让这圆圈内的人可以一起聊天,

所以叫做“一圈人”。

 

 

 

下面 贴贴demo的运行效果图:


 



 
 

发布在 http://auzll.iteye.com