相关疑难解决方法(0)

服务器端的优秀XMPP Java库?

我希望用Java实现一个简单的XMPP服务器.

我需要的是一个可以解析和理解来自客户端的xmpp请求的库.我看过Smack(下面提到)和JSO.Smack似乎只是客户端,所以虽然它可能有助于解析数据包,但它不知道如何响应客户端.JSO是否保持它看起来很旧.唯一有希望的途径是拆分Openfire,这是一个完整的商业(OSS)XMPP服务器.

我只是希望Netty或Mina上面有几行代码,所以我可以开始处理一些消息.


乔 -

那么我想要做的事情的答案有点长 - 我会尽量保持简短.

有两件事,只是松散相关:

1)我想编写一个XMPP服务器,因为我想为两个客户端编写自定义协议进行通信.基本上我在想一个联网的iPhone应用程序 - 但我不想依赖低级二进制协议,因为使用类似XMPP的东西意味着应用程序可以从基于本地wifi的应用程序快速"成长"到基于互联网的应用程序...

交换的消息应该是相对较低的延迟,所以严格来说二进制协议是最好的,但我觉得如果XMPP没有引入太多开销以便我可以使用它然后获得它的可扩展性的好处,那么值得探索.和以后的灵活性.

2)我为兵马俑工作 - 所以我有这种疯狂的想法聚集一切.我一开始考虑编写一些自定义服务器代码,我想我想将它集群化.Terracotta使得Java POJO的扩展变得微不足道,所以我的想法是构建一个超级简单的XMPP服务器作为Terracotta的演示应用程序.基本上每个用户都将通过TCP连接连接到服务器,这将用户注册到散列映射.每个用户都有一个LinkedBlockingQueue,其中一个侦听器线程从队列中获取消息.然后,任何想要向任何其他用户(例如任何旧的聊天应用程序)发送消息的连接用户只需通过该连接向该用户发出XMPP消息(照常).服务器选择它,在地图中查找相应的用户对象并将消息放入队列.由于队列是群集的,

所以 - 我不害怕总结.但这就是我想要做的.我想我可以为Openfire编写一个插件来完成#1,但我认为它需要处理很多管道,因此很难做到#2(特别是因为我希望有一小部分代码能够适应简单的10-20kb Maven项目).

java xmpp

61
推荐指数
2
解决办法
5万
查看次数

更好的方法在Android上使用XMPP实现聊天应用程序?

您好我想使用XMPP在Android中实现聊天应用程序(以避免GCM通知,因为GCM使用请求响应过程).

我使用Smack库和OpenFire服务器完成了70 perc功能.但在完成这些后我才知道了QuickBlox SDK.我完全不知道这一点,但很少有人通过看到这些特征说它是好的api ..

任何人都可以告诉我,这是使用smack for xmpp实现聊天应用程序的正确方法.或者我们有任何其他使用xmpp for android的好api.

android xmpp xmppframework quickblox

31
推荐指数
2
解决办法
5万
查看次数

将HTTP REST API用于聊天应用程序是否可以?

我们正在Android中构建聊天应用程序.我们正在考虑使用HTTP REST API发送出站邮件.与使用WebSockets或XMPP(这似乎更像是转移聊天消息的事实标准)相比,想知道它是一个好方法还是有任何缺点?

我能想到的一些优点/缺点是:
+ HTTP端点很容易在服务器端水平扩展(这是一个主要问题)
+与HTTP相比,Websockets的学习曲线更陡峭
- 与websockets相比,HTTP消息的负载更大

根据这份文件,似乎Facebook最初使用AJAX来处理聊天消息:

https://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf

android chat xmpp

20
推荐指数
3
解决办法
1万
查看次数

使用Google Cloud Messaging在Android上进行即时消息传递

我只是在看新的Google云消息传递(GCM),我想知道是否可以在Android应用程序上使用GCM进行即时消息传递?

我看到你可以从服务器发送数据,比如消息,但是也可以从一个设备发送到另一个设备吗?这将如何运作?一些示例代码将非常有用..

TNX!

android instant-messaging google-cloud-messaging

17
推荐指数
2
解决办法
2万
查看次数

从笔记本电脑控制您的手机

想法:为你的Android手机创建一个遥控器.

原因:我喜欢在连接扬声器的基座站的手机上听音乐.现在有时我想要上调/下调音量,更改歌曲等等.所以我需要解锁手机,找到正在播放音乐的应用程序(音乐播放器,网络电台应用程序等).有时我会设法取消电话,或者只是弄乱一些东西,通常是这个问题.

所以我想从笔记本电脑(在wifi上)控制我的手机(在数据连接上,而不是wifi上).

我调查了几种方法,并希望得到一些建议:

  1. 使用XMPP.这很好,因为我可以使用很多免费的XMPP服务.我试过的两个库(都基于smack)工作得很好(Flow aSmack port和Beem smack port).我可以在设备上自动创建新用户,并提供我(用户)将在桌面端输入以链接两个设备的一些ID /密码组合.

  2. 使用JXTA.应该是下一个真正的交易,但可能是一个矫枉过正.我想在某处运行一个集合和中继服务器(需要托管以解决防火墙/ NAT)并创建一个受密码保护的对等组.使用设备唯一ID和密码(带有组)链接到桌面应用程序.(可以从这里下载一本很好的电子书来解释p2p和JXTA ).

  3. 使用C2DM.可能是答案,但通知交付有时可能需要几秒钟才能交付,并且没有反馈机制.

到目前为止,第一个解决方案看起来更容易选择.创建自定义扩展或仅在两个端点之间创建聊天,并使用它来中继命令/消息.但我想知道我是否会滥用XMPP系统?

JXTA听起来很棒,但从我所做的所有阅读中可以看出,它是专为群组通信和服务共享而设计的,而不是连接两个端点的解决方案.

你们有什么感想?我也欢迎所有的建议.

更新我不想远程接听电话并以交互方式控制它.我想在笔记本电脑和手机之间建立连接(套接字连接),即使它们都位于防火墙,路由器后面的不同网络上.有了这个,我可以定义一个协议来向手机发出命令(低音量,静音,启动应用程序等).

更新2我正在给JXTA一个机会.这是一个很好的解决方案,但缺乏文档是一个下降.得到了VPS FreeBSD服务器来测试RDV/relay方面的东西.我会继续更新这个问题,因为它可能对其他人有帮助.

更新3更多阅读:

更新4 到目前为止,我没有足够的时间继续我的项目.我找到了一个有趣的项目.目前项目所有者正在重新编写他们的库,您可以在此处跟踪他们的进度.

java android p2p

11
推荐指数
1
解决办法
1365
查看次数

XMPP和Android

可能重复:
Android和XMPP:当前可用的解决方案

我正在尝试在Android中构建一个小型XMPP客户端.关于我可以使用哪些库的任何想法?我尝试过使用Smack API,但是它存在一些问题,这使得它不实用.

android xmpp

10
推荐指数
2
解决办法
4万
查看次数

如何通过sip在android中发送短信

我正在开发一个Android应用程序,我希望使用sip/xmpp(会话启动协议)发送文本消息,任何人都可以给我代码,以及任何关于它在任何免费sip提供程序上开发和测试的指南.

java eclipse android voip

9
推荐指数
1
解决办法
6364
查看次数

在android中创建聊天应用程序的最佳做法是什么?

我要创建一个Android聊天应用程序.实际上聊天将成为应用程序的一项功能.我想知道有关Android聊天应用程序的最佳实践.我熟悉的两个选项是C2MD,每隔几秒就会对服务器db进行一次自定义轮询.

现在,我知道C2MD应该是伟大的,但是根据我的理解,它并不可靠.我试图实现它,它似乎没有工作.此外,如果由于某种原因谷歌结束时发生了某些事情(就像他们的服务器停机 - 不太可能但可能发生)我无法联系他们,并且他们正处于他们的时间框架.

现在,如果我做自己的事情(我发送用户创建的消息的基本方法,然后定期检查服务器以查看是否有任何新消息到达)似乎没问题,除非为了获得良好的用户体验,我的我的服务器轮询必须像大约5秒左右,这就像疯了一样咀嚼电池.这是使用这种方法的主要缺点.

所以,我想知道有一个更好的方法,我不知道.请任何帮助,架构结构,任何有用的东西.

android chat

8
推荐指数
1
解决办法
4486
查看次数

在Unity3D中创建Android XMPP聊天客户端的最佳方式

我正在尝试使用Unity/C#/ Mono创建iOS和Android XMPP聊天客户端.我有一个功能齐全的聊天客户端,使用Jabber.net为iOS工作,但它不适用于Android.那么有没有人知道一个适用于Android的Unity/C#的库?

这篇文章讨论了Android和XMPP解决方案,但还没有找到任何方法将它连接到Unity: Android和XMPP:当前可用的解决方案

这是我的问题,关于让Jabber.net在Unity 运行Android: Unity/Android上的Jabber.net错误(在/system/lib/libc.so中找不到JNI_OnLoad,跳过init)

c# android chat xmpp unity-game-engine

7
推荐指数
1
解决办法
3158
查看次数

没有调用Smack消息监听器和连接不稳定

我有以下代码应该监听消息:

ChatManager chatmanager = ChatManager.getInstanceFor(xmppManager.getConnection());

chat = chatmanager.createChat(otherJabberId);

chat.addMessageListener(new ChatMessageListener() {
    @Override
    public void processMessage(Chat chat, Message message) {
        Log.e("message trigger", message.getBody());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的日志永远不会触发.

但是,setDebuggerEnabled(true)我的代码中有以下内容:10-31 15:41:51.264 28889-28993/com.lfdversluis.buurapp D/SMACK: RECV (0): <message to="test@app.buur.nu/Smack" type="chat" id="53" from="testje@app.buur.nu/Gajim"><body>test</body><request xmlns="urn:xmpp:receipts"/><thread>277945c1-772a-4d4b-8e1a-274153cfb8a6</thread></message>

所以收到了消息.我检查过,otherJabberId变量是正确的.只是听众没有触发.什么更奇怪,有时它只是工作正常.

我遇到的另一个问题是无法发送消息.

在这里,我有如上所述的聊天设置,并使用以下代码发送消息:

try {  
    chat.sendMessage(text.trim());  
    DataBaseManager db = new DataBaseManager(ChatActivity.this);  
    db.addMessageToDB(model);  

    addMessageToScreen(newMessage);  

} catch (SmackException.NotConnectedException ignored) {  
    XMPPManager manager = XMPPManager.getInstance();  
    manager.reconnect(); // Maybe we need to reconnect due to an interrupt and retry..  
    try {  
        chat.sendMessage(text.trim()); …
Run Code Online (Sandbox Code Playgroud)

android xmpp listener smack

6
推荐指数
1
解决办法
1587
查看次数