9

我有一个带有 rails 的 iphone 应用程序作为后端服务器。

现在我需要使用套接字连接来实现聊天功能。

许多示例向您展示了如何在浏览器中使用套接字实现聊天。

我在这里需要的是如何实现一个应用程序,您可以在其中创建在 rails 应用程序中的套接字服务器,以及在 iphone 应用程序中创建监听我给他们的频道的客户端。

我尝试使用 faye(仅给出如何在浏览器中实现客户端的示例)并使用 fayeObjC 库为 iphone 创建客户端,但无法收听该库中的频道。我知道我必须在这里实现错误。

我也会在这里分享我的代码,但首先我需要知道有没有比这更好的解决方案?

另外,我很欣赏一些示例的链接,其中套接字服务器位于 Rails 中,客户端是 iphone 应用程序。

感谢任何帮助,并且最需要一个正确的方向来实施它。


更新

我再次尝试了faye组合并且它起作用了。尽管仍在寻找更多解决方案。

4

2 回答 2

8

您可以检查TCP 套接字

下一个链接是全面的网络指南 -使用 Internet 套接字

您必须记住点对点通信(聊天)的两个主要问题:可达性以及如何在应用程序处于后台时接收新消息(获取通知)。最后,您可以使用APNS 方法:将向 iPhone 推送一条不可见的通知,指示有新消息可供阅读。因此,您的应用程序将请求未读消息(WhatsApp 之类的应用程序所做的)。

除了 TCP 套接字,您还可以使用websockets(HTTP - 所以没有防火墙问题)。同类最佳 - Socket.IO。在这里你会找到 wiki https://github.com/learnboost/socket.io/wiki(你会发现那里也有 Ruby 的扩展)

这是用于 socket.io 和 node.js 后端的 iOS 聊天客户端的示例

胡言乱语

另一种选择:XMPP -“代表可扩展消息传递和存在协议。这样的协议是开放标准的,面向消息交换(由 Jabber 社区构建和维护)。消息交换几乎是实时发生的,因此它是构建的理想基础设施类似聊天的应用程序。该协议还实现了通知状态信息(用户是否在线)和维护联系人列表的机制。XMPP 是一个彻底的协议,也被谷歌等大公司采用来构建他们的即时通讯服务。”

在这里,您将找到有关开发适用于 iOS 的 Jabber 客户端的所有信息(使用户能够登录、添加好友和发送消息;如何安装和配置 jabber 服务器、创建帐户以及从 iOS 应用程序与服务器交互http:/ /mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/

于 2013-02-09T00:46:17.107 回答
0

我知道SocketRocket by square 是一个强大的原生 Objective-C 库。但它不提供您似乎正在寻找的通道抽象。

如果您考虑外包 WebSocket 连接,那么您可以使用像我工作的Pusher这样的托管服务。您可以使用pusher-gem在通道上发布消息(触发事件)。您可以使用Pusher 的 Objective-C 库之一订阅频道和接收消息。

其他解决方案也将具有 Objective-C 库,您可以通过此实时网络技术指南找到它们的列表。

于 2013-02-02T23:26:01.303 回答