GWT 2.4 和 XMPP 与 JBoss 7.1 的集成
Posted
技术标签:
【中文标题】GWT 2.4 和 XMPP 与 JBoss 7.1 的集成【英文标题】:GWT 2.4 and XMPP integration with JBoss 7.1 【发布时间】:2012-03-14 08:19:40 【问题描述】:我需要 XMPP(Openfire 服务器)和 GWT(2.4) 之间的集成。 我已经使用纯 JS 完成了它。 我的问题是:从客户端连接到服务器的正确方法是什么。 我需要聊天等基本功能。仅将字符串消息发送到服务器并返回。 我见过 Strophe(有很多对 JS 的本地调用)和 Emite 库,但似乎没有人支持它们,而且它们已经过时了。 有人可以粘贴代码 sn-p 用于连接和交换消息吗?谢谢。
编辑:我使用 JBoss 7.1.Final 作为服务器
【问题讨论】:
基本上我需要像 Emite 这样的纯 Java 客户端代码,其中包含“新鲜”代码,所以我认为我需要重写并丢弃来自 Emite 的所有垃圾 :) 并使其易于使用和修改。任何建议都会对我有所帮助! 您解决了吗?我们在atm遇到同样的问题 不,我没有。我选择了基本的 html 和 js。如果您必须使用 GWT,那么作为基本解决方案,您可以将 strophe.js 导入到主 html 页面,然后通过 java 的 native 关键字进行本地调用或使用 GWT 的工具动态导入。 @DidarBurmaganov 你也可以通过 Emite 连接到 XMPP。按照github.com/EmiteGWT/emite/tree/0.7/examples 的示例,我已经能够连接到Ejabberd XMPP 服务器。您需要使用代理(检查 web.xml 中的 servlet 映射) 【参考方案1】:如果您正在寻找纯 java 客户端代码,那么您可以使用 Smack,这可能是 XMPP 客户端最流行的 Java 库。
【讨论】:
谢谢!这是我需要的,因为我使用 openfire,所以客户端也来自 jivesoftware :) 但我不能在 GWT 中直接使用 smack api。所以要使用它,我下载了 smack 的 src,重新编译它以具有 .java 和 .class 并添加 *.gwt.xml,将所有内容放在 jar 文件中,然后在我的应用程序中简单地添加我正在寻找这种东西。 我的应用程序使用 Google OAuth 登录。现在,我想在我的应用程序中实现聊天。 当我通过此聊天登录到我的应用程序时,我将能够通过我的应用程序中的聊天与 GTalk、gmail 聊天等上的人聊天。 也就是说,我将能够与应用程序中的用户以及使用群聊与应用程序外的用户聊天。
关于“使用什么”可以实现的任何建议?
问候
【讨论】:
【参考方案3】:Google App Engine 支持 XMPP (Google Talk :))。我认为您可以在 GWT 项目中使用它。 GAE XMPP
【讨论】:
感谢您的回复!我已经用谷歌搜索过了,但问题是我不使用 GAE。我的堆栈是 JBoss 7.1Final + openfire + GWT2.4 我无法切换到 GAE。顺便说一句,是否可以修改 Google 的 XMPP 客户端源以与我的自定义服务器一起操作?会很好 有一些库,但我没有尝试。由你来选择:) launchpad.net/gwt-strophe Strophe 有很多我不想使用的 JSNI 调用,因为它与 Java 代码混合变得复杂。此外,当我在编译过程中尝试控制台打印这样的错误:[INFO] com.google.gwt.dev.jjs.InternalCompilerException: Failed to get JNode 似乎没有人能回答你的问题,伙计:D【参考方案4】:我个人将emite 与hablar 一起使用。虽然它现在看起来像是一个陈旧的项目,但它是开源的,您可以恢复它。例如,我对两个项目都有一个拉取请求,在其中我获取了只能连接到单个 xmpp 服务器的代码并对其进行了修改,以便它可以同时连接到多个服务器。
如果您只想要通信堆栈并且想要为 ui 编写比 hablar 包更自定义的东西,Emite 是一个好的开始。
Hablar 为您提供了 ui 所需组件的良好基础。
【讨论】:
以上是关于GWT 2.4 和 XMPP 与 JBoss 7.1 的集成的主要内容,如果未能解决你的问题,请参考以下文章
将 GWT 部署到 JBoss 时出现 web.xml 问题