我是XMPP中的新成员,但我需要让Facebook像网络应用程序上的聊天一样。 该应用程序是一个使用JSP,struts2,tiles使用Tomcat服务器编写的Java EE 7的Web应用程序。在Facebook上使用Javascript实现类似于Java的聊天使用Javascript的WebApp
我读到一些关于如何实现这个功能,我发现了几个解决方案 最好的(因为它北京时间最简单的)在我看来,使用的是: 的JavaScript的strophe和波什的技术。我想在web应用程序授权后与java的Bosh连接,接下来,我计划使用bosh会话与Strophe的bosh连接。
我的主要问题是: 将执行将工作时,访问者将改变网站? 例如。当他在主页上并且设置的时候。 并且会一直持续Bosh会话用户将被登录到webapp?
我不会使用WebSockets和Atmosphere,因为事实上我需要在项目中做出很多更改,我想我不会应付这种情况。
如果这是个好主意,你有什么建议吗? 感谢您的帮助!
编辑:
我决定与大气做到这一点,我使用的是Tomcat与Java EE7
首先,我试图运行任何气氛例子。当我在Tomcat运行它作为一个新的应用程序它的工作原理,但是当我用struts添加到我的应用我有一个问题可能与web.xml中 我的文件看起来是这样的:
的web.xml:
<!-- Atmosphere -->
<servlet>
<description>AtmosphereServlet</description>
<servlet-name>AtmosphereServlet</servlet-name>
<servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
<async-supported>true</async-supported>
<!-- Use it with mvn jetty:run -->
<init-param>
<param-name>org.atmosphere.cpr.packages</param-name>
<param-value>org.atmosphere.samples</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<!-- Atmosphere Mapping-->
<servlet-mapping>
<servlet-name>AtmosphereServlet</servlet-name>
<url-pattern>/chat/*</url-pattern>
</servlet-mapping>
...
<!-- Filters -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.comarch</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
...
没有第一部分(与气氛,一切工作正常)
下一部分是从实例采取的WebSocket类: https://github.com/Atmosphere/atmosphere-samples/blob/master/samples/websocket-chat/src/main/java/org/atmosphere/samples/chat/WebSocketChat.java
我有网站看起来像:混帐hub.com/Atmosphere/atmosphere-samples/blob/master/samples/websocket-chat/src/main/webapp/index.html
和我的application.js样子:
我换15号线直接链接:
var request = { url: 'http://localhost:8081/chat/',
当我去我的网站,我可以看到在我的控制台错误:
WebSocket连接到 ws://localhost:8081/chat?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.1.2-jquery&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application%2Fjson&X-atmo-protocol=true failed: Error during WebSocket handshake: Unexpected response code: 501
“最好”的解决方案可能是基于观点的,但是我会说在Erlang中编写它将是最好的解决方案,因为这就是Facebook的做法,但是websockets也是一个不错的选择,服务器端的XMLHttpRequest和Java听起来并不是最好的解决方案,但它当然是可行的。 – adeneo