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

7
我正在尝试使用Unity/C#/Mono创建一个iOS和Android XMPP聊天客户端。我已经使用Jabber.net为iOS创建了一个完全功能的聊天客户端,但是它在Android上无法使用。那么,有没有人知道适用于Unity/C#的Android库呢?
本帖讨论Android和XMPP解决方案,但未找到任何将其连接到Unity的方法:Android and XMPP: Currently available solutions 这是我的问题,涉及如何使Jabber.net在Android与Unity一起工作:Jabber.net on Unity/Android error (No JNI_OnLoad found in /system/lib/libc.so, skipping init)

我已经为Mono 2.0编译了Jabber-Net库。但是当我在设备上运行它时,我遇到了这个异常。 'ExecutionEngineException: Attempting to JIT compile method' 你是如何解决的? - Basit ZIa
不记得了。这可能与剥离级别或C#版本有关吗?http://forum.unity3d.com/threads/43038-ExecutionEngineException-Attempting-to-JIT-compile-method - Sunkas
2个回答

2

由于没有人回答我是如何解决这个问题的:

  1. 在Eclipse中的新Android项目中使用ASmack for Android
  2. 创建一个自定义的ASmack包装器,其中包含登录、注销、发送消息等基本公共方法
  3. 提取为jar库。
  4. 将jar导入Unity3D中
  5. 使用Unity3D的AndroidJNI方法调用jar文件的公共方法
  6. 回调在Java-wrapper中设置,并使用“UnityPlayer.UnitySendMessage()”进行调用(需要将Unity应用程序包中的classes.jar导入Eclipse项目进行编译)
  7. 成功了!

一些工作需要完成并且需要一些时间来调试和构建,但它确实有效。


抱歉,该视频无法播放。 - naXa stands with Ukraine
很遗憾(那不是我的视频)。我已经删掉了这个链接。希望我的说明能帮到你。 - Sunkas
那iOS客户端怎么办?据我所知,ASmack无法在iOS上运行。 - naXa stands with Ukraine
正如问题中提到的,我们在iOS上使用了Jabber.net。请注意,该问题是在2012年发布的,不确定今天什么是最佳选择。 - Sunkas
你好 @Sunkas,我正在制作XMPP插件,你能否帮忙展示一些流程或者分享你的代码,谢谢。 - Mahesh Kavathiya
你能否帮我解决这个问题,如果你在创建插件时遇到了这个问题:http://stackoverflow.com/questions/41893076/smackinitialization-could-not-determine-smack-version - Mahesh Kavathiya

1

与ASmack的所有操作相比,我建议使用MatriX XMPP SDK。我们在Unity项目中使用此库。

它可以在Win、Mac、iOS、Android上运行,无需任何特殊操作。我们只有一个问题——无法在WebPlayer上使其工作。


谢谢你的回答。我问这个问题已经很久了。我记得当时我给MatriX发了几个问题的邮件,但当时我们不能使用它,因为它缺少一些要求。不幸的是,我不记得是什么了。 - Sunkas
1
据我所知,两年前Unity中的套接字和专业版许可存在问题。@Sunkas - Suvitruf - Andrei Apanasik
1
@AlejandroHuerta 我可以说它在独立构建中肯定有效。我明天会在Android和iOS上进行测试。 - Suvitruf - Andrei Apanasik
1
@AlejandroHuerta 我已经在iOS上测试了Matrix,它可以正常工作。稍后我会尝试在Android上测试。 - Suvitruf - Andrei Apanasik
@Suvitruf,你有任何特殊的配置设置吗?Android版本是多少?我一直在尝试并且失败地在我手头的几部手机上让套接字工作,并不得不使用BOSH传输层。 - Alejandro Huerta
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接