最近写了个测试小应用,是试用百度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的运行效果图:
相关推荐
赠送jar包:jetty-continuation-8.1.8.v20121106.jar; 赠送原API文档:jetty-continuation-8.1.8.v20121106-javadoc.jar; 赠送源代码:jetty-continuation-8.1.8.v20121106-sources.jar; 赠送Maven依赖信息文件:...
Jetty 7版本引入了一个重要的新特性——支持跨域Ajax请求,打破了传统浏览器对同源策略的限制,使得不同域之间的Web应用能够进行更灵活的数据交互。 Cometd是一种基于Bayeux协议的实时Web通信技术,旨在解决Web应用...
赠送jar包:jetty-continuation-8.1.8.v20121106.jar; 赠送原API文档:jetty-continuation-8.1.8.v20121106-javadoc.jar; 赠送源代码:jetty-continuation-8.1.8.v20121106-sources.jar; 赠送Maven依赖信息文件:...
jetty-continuation-7.4.2.v20110526.jar jetty 服务jar包
在Java Web开发中,Spring框架和Jetty服务器的整合提供了轻量级且高效的应用部署解决方案。这个例程展示了如何利用Spring来启动和管理Jetty服务器,以构建和运行Web应用程序。下面将详细介绍这一过程中的关键知识点...
在Java Web开发中,Jetty是一个轻量级的开源HTTP服务器和Servlet容器,它支持Servlet规范并提供了部署Web应用程序的方法。本文将深入探讨如何在Jetty中部署Web应用程序,包括相关术语和部署策略。 首先,我们需要...
jetty-security-9.4.8.v20171121.jar,jetty-io-9.4.8.v20171121.jar,jetty-continuation-9.4.8.v20171121.jar,jetty-client-9.4.8.v20171121.jar,jetty-jmx-9.4.8.v20171121.jar,jetty-plus-9.4.8.v20171121....
通过分析源代码和实验,你可以了解到如何自定义配置Jetty以适应特定的应用需求,例如调整线程池大小、添加自定义过滤器或者实现WebSocket端点。 总的来说,这个压缩包是一个极好的起点,无论是对Java Web开发初学者...
总结一下,Jetty作为一个强大的Servlet容器,提供了轻量级、快速和灵活的Web应用开发环境。通过学习如何配置和运行Jetty服务器,以及如何注册和管理Servlet,你可以为你的Java Web应用打下坚实的基础。不断探索Jetty...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器功能直接集成到他们的Java应用程序中。这种内嵌式部署模式在开发和调试阶段尤其有用,因为它提供了灵活的控制和快速的反馈循环。...
1. **Jetty服务器容器**:Jetty是一个开源的、符合Java Servlet规范的Web服务器和Servlet容器,其设计目标是轻量、快速和可嵌入。开发者可以将Jetty直接集成到他们的应用程序中,而不需要单独的服务器进程。 2. **...
5. **WebSocket支持**:在Jetty 8.0中,它率先实现了WebSocket协议,这是一个双向通信协议,允许服务器与客户端进行实时数据交换,对在线游戏、聊天室等应用非常有用。 6. **嵌入式使用**:Jetty可以被嵌入到其他...
文件`jetty-6.1.12`是Jetty的一个特定版本,6.1.x系列属于较旧的版本,但仍然包含了许多关键的Web服务器和Servlet容器的组件。以下是一些关键知识点: - **模块化设计**:Jetty采用了模块化设计,允许开发者根据...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,从小型的个人项目到大型的企业级应用。Jetty以其高效、稳定和易于集成的特点,深受开发者喜爱。在本篇文章中,我们将深入...
为了在Jetty上运行一个Web应用,你需要创建一个标准的Web应用目录结构,通常包括`WEB-INF`目录和`WEB-INF/web.xml`配置文件。`web.xml`是Servlet配置文件,用于定义Servlet和它们的映射路径。 例如,创建一个简单的...
以下是一个简单的示例代码片段,展示了如何创建一个监听8080端口的Server对象,设置一个默认Handler,并使用XML配置文件(如`jetty.xml`)初始化和启动服务器: ```java public class JettyServer { public static...
总之,Jetty作为一个轻量级的Web服务器,为开发者提供了一个快速开发和部署Java Web应用的平台。它易于学习和使用,尤其适合小型项目和原型开发。通过实践这个Jetty demo,你可以掌握如何在Eclipse中配置和运行Web...
4. **嵌入式使用**:Jetty的一个独特之处在于它的嵌入式特性,可以直接在应用代码中启动和管理服务器,无需单独的服务器进程。这对于快速开发和调试非常方便。 5. **模块化设计**:Jetty的模块化设计允许用户根据...
在使用Jetty进行Web项目开发时,一个显著的优势是它允许开发者在不重启服务器的情况下热部署应用。这是因为Jetty支持观察文件系统变化并自动重新加载修改过的类或资源,极大地提升了开发效率。对于快速迭代的项目,...