【问题标题】:How to implement XMPP communication in Nativescript?如何在 Nativescript 中实现 XMPP 通信?
【发布时间】:2019-01-20 08:03:09
【问题描述】:

在 Nativescript 中使用像 stanza.io 这样的库与像 MongooseIM 这样的 XMPP 服务器通信有什么限制吗?还有什么其他选择?

【问题讨论】:

    标签: xmpp nativescript angular2-nativescript stanza.io


    【解决方案1】:

    如果 stanza.io 支持 NativeScript,那么应该没有任何限制。

    在他们的 GitHub 主页上,他们说这是一个浏览器中的现代 XMPP,带有 JSON API。所以它主要用于浏览器环境,我不确定 NativeScript。

    作为替代方式 - 有一个支持 NativeScript 的 xmpp.js 库。他们的文档有点糟糕,但是使用 src 代码有一种方法可以成功集成它。

    有一个关于如何将它用于 ReactNative 的指南,但是您可以从中获取一些用于 NativeScript 的部分,尤其是那些与 lib 本身相关的部分。 https://medium.com/@connectycube/xmpp-real-time-chat-in-react-native-8d6d5d23dd47

    您还可以使用一些现成的 XMPP 高级平台进行聊天,例如https://connectycube.com/2018/12/11/connectycube-textchat-code-sample-for-nativescript/ 在这种情况下,您不需要关心 XMPP 服务器的安装和监控

    【讨论】:

    • 好吧,Nativescript 使用 Javascript 虚拟机,所以我很困惑你提到的浏览器点是一个问题,在他们的页面中你可以阅读“一般来说,NativeScript 尝试使用最新的稳定版本V8 和 JavaScriptCore;因此 NativeScript for iOS 中的 ECMAScript 语言支持与桌面版 Safari 中的支持几乎相同,而 NativeScript for Android 中的支持几乎与桌面版 Chrome 中的支持相同。”,但我一定会去看看xmpp.js 和 ConnectyCube 一样,从财务角度来说,这超出了我的能力范围。
    • 好的,我刚刚在这里发布了他们的标题,所以不确定 stanza.io。但我可以肯定地说 xmpp.js 适用于 NativeScript
    • 所以我经历了试图让节与nativescript一起工作的痛苦并且没有运气,我还检查了那里的教程,它也没有太大帮助,有没有人找到可靠的解决方案?
    【解决方案2】:

    您必须找到第三方服务器或托管您自己的实现 XMPP 协议的服务器,并使用 {N} 应用程序中的 WebsocketsXMPP 插件连接到该服务器。

    仅供参考,此 XMPP 插件实现了与 the MongooseIM docs 中解释的相同的 pod 库,但 JavaScript api 未完全实现,因此您可能必须根据需要直接访问本机 api。

    您也可以参考nativescript-xmpp-client,这是 XMPP 实现的另一个示例。

    【讨论】:

    • 'nativescript-xmpp-client' 是一种潜在的方式,但最近一次提交是在大约 2.5 年前,所以我不确定它是否仍然有效
    • @Rubycon 这不是最佳选择,因为它不支持 wss。见github.com/samuelagm/nativescript-xmpp-client/issues/3
    • @DanielArechiga 我认为您不需要在移动设备上使用 WSS,因为那里使用了非常标准的 TCP 套接字连接
    • @Rubycon 这与需求无关,我关心的是延迟、带宽使用和开销。
    • 抱歉,我以为我们是在比较 BOSH 和 websocket,当然,纯 TCP 总是更快,感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2011-10-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多