【问题标题】:IOS Simple Messaging client, presence and typingIOS 简单消息客户端、状态和输入
【发布时间】:2014-03-14 15:38:12
【问题描述】:

我正在考虑向 iphone 应用程序添加消息传递功能。这个想法是给定一个基于用户的 IOS 应用程序,一个用户可能有一个其他用户的列表。然后他可能想给一个人发送消息。直接的网络调用可以做到这一点,但它遗漏了几个部分:

1) 登录用户“监听”传入消息的能力,而不必每隔几秒轮询一次服务器。 IOS 是否支持以某种方式侦听的开放式套接字连接?

2) 服务器检测用户存在的能力(当他们登录、活动和监听时;如果他们连接/断开连接则立即)

3) 检测打字的能力,如果可能的话

我听说这可以在带有 socket.io 库的 javascript 应用程序中实现,并且想知道 IOS 原生存在哪些等效工具?还是应该尝试使用 JS 的 webview?

编辑:

推送通知可能会被用于离线使用,但不确定它们是否可以替代所有实时交互。

EDIT2:

找到了这个用于IOS的SocketIO工具,但是没有这方面的经验。不过这是一种可能。 https://github.com/pkyeck/socket.IO-objc

【问题讨论】:

    标签: ios socket.io messaging


    【解决方案1】:

    第一,你应该看看这个教程: http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 它使用推送通知来检测传入的消息。

    其他两个部分可能是计时,只是说用户自上次活动以来活跃了 2 分钟。每次他们在应用程序中使用某些东西或轮询服务器时,您都会更新时间并让它们再活动两分钟左右。

    如果在文本字段中输入了某些内容,您可以检测到输入。 UITextField 有一个 onChanged 方法。您还可以启动一个计时器来检测一定时间之间的变化。因此,如果有人只是填写了他们的文本字段但没有发送消息,则不会说输入。

    希望这会有所帮助。

    【讨论】:

    • 当然会利用推送通知,但主要用于离线使用。如果用户坐在消息窗口中,我不确定它与实时更新的目的相同。第二个可以工作,尽管它为未知用户是否仍然存在留下了漏洞。
    • Pushnotification 会给你一个触发器来轮询服务器。您还可以让服务器知道用户何时关闭应用程序。有一个方法applicationWillEnterBackground
    猜你喜欢
    • 2017-11-05
    • 2013-05-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    相关资源
    最近更新 更多