小木木 发表于 2017-2-27 11:08:10

【练习代码】试用百度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 
页: [1]
查看完整版本: 【练习代码】试用百度BAE和练手jetty continuation的副成品 —— 一个简陋的WEB版LBS聊天应用