如何使用带有Jetty emded定制服务器的WebSocket

我是StackOverflow的新手。 我已经搜寻过这个话题,但我没有找到真正相关的东西。

基本上我需要为我们公司开发一个网络“支持聊天”系统。 我知道有很多可用的解决方案,但我们需要Java中的定制解决方案。 我们需要建立一个支持聊天网络系统,访问该网站的用户可以使用聊天请求支持,另一方面,我们有'n'代理人负责处理请求。 为了商业智能的目的,我们需要在Cassandra群集中存储每一段对话。 我们需要在Java(服务器端)和JavaScript + JQuery(客户端)中开发解决方案。

编辑:在检查了很多基于XMPP的解决方案(很多都很旧,不再支持)之后,我可能会使用类似XMPP的自定义协议,该协议只涵盖我们需要的功能。 开发解决方案WebSocket似乎是最合适的技术。

问题是,从哪里开始? 我google了一下,但没有提及如何在Jetty上使用WebSocket。 任何链接? 任何资源?

基本上我的想法是:

  • 基于Jetty Embedded的聊天服务器
  • Web应用程序(JQuery)的一个小前端,需要与服务器交谈。
  • 通信基于WebSocket来避免轮询(真正的问题)
  • 基于WebSocket的XML的XMPP样式协议。 但这不是问题。
  • 如何在Jetty中使用WebSocket的问题涉及到定制服务器和Web应用程序。

    ADD正如许多人指出的那样,WebSocket并不能很好地支持通用用途。 相反,AJAX是更自然的解决方案,但这意味着使用轮询。 我发现了一些关于如何绕过长查询问题的例子,但是我无法找到基于JQuery的坚如磐石的实现,它能够:

  • 可用时使用WebSocket

  • 否则,请使用基于JQuery的长轮询

  • 我认为现在问题更加清楚。 对不起,我以前的“谈论”风格问题。


    我已经使用了大气框架(https://github.com/Atmosphere/atmosphere)。 他们提供了几个聊天相关的示例:https://github.com/Atmosphere/atmosphere/tree/master/samples


    我不会建议你需要Websocket作为支持系统,因为有很多人使用Internet Explorer,但它不支持它,并且在Windows 7以前的Windows版本中可能不会支持它:http://caniuse.com /的WebSockets

    你说你想在客户端使用“Java + JQuery”。 你确定你不会混淆Java和JavaScript吗? 这些技术与冰茶和长岛冰茶一样常见。

    当您真的想使用Java时,您不需要使用WebSockets,因为Java小程序可以使用普通的TCP或UDP套接字与服务器进行通信。

    当你的意思是JavaScript时,我建议你创建一个基于AJAX的解决方案,因为它的支持得到了更广泛的支持,并且你不需要为聊天应用程序提供WebSockets的实时性能。


    您可能想查看Openfire的Fastpath插件(服务和网络聊天)。 这是一个基于XMPP的解决方案,旨在支持您的用例。 它是基于开源和基于Java的,因此您可以轻松扩展它以满足您的需求。

    Smack for Java基于客户端的解决方案也支持(在工作组包下)。

    链接地址: http://www.djcxy.com/p/94161.html

    上一篇: How to use WebSocket with a Jetty emdedded custom server

    下一篇: Good XMPP Java Libraries for server side?