iphone - Rails 和 iphone native 应用程序之间的套接字连接

标签 iphone ruby-on-rails sockets websocket chat

我有一个 iPhone 应用程序,其中 Rails 作为后端服务器。

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

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

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

我尝试使用faye(仅给出如何在浏览器中实现客户端的示例)并使用iphone的fayeObjC库来创建客户端,但无法收听该库中的 channel 。我知道我一定是错误地实现了它在这里。

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

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

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

<小时/>

更新

我再次尝试了 faye 组合,它成功了。尽管仍在寻找更多解决方案。

最佳答案

您可以检查TCP套接字:

下一个链接是全面的网络指南 - Using Internet Sockets

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

除了 TCP 套接字之外,您还可以使用websockets(HTTP - 因此不存在防火墙问题)。 同类最佳 - Socket.IO 。 在这里您可以找到维基 https://github.com/learnboost/socket.io/wiki (您还会发现 Ruby 的扩展)

这里是 iOS chat client for socket.io & node.js backend 的示例

叽叽喳喳

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

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

关于iphone - Rails 和 iphone native 应用程序之间的套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645712/

相关文章:

c++ - 我可以将accept()与IOCP一起使用吗?

iphone - 是否必须开发iPad应用程序?

ruby-on-rails - 对象必须是日期、日期时间或时间对象。没有给出

ruby-on-rails - 地理编码器 gem 的 country_code 列表

ruby-on-rails - Rails Webpacker 图像不会加载,除非通过导入手动定义

c - 如何使用c获取站点ip地址

java - JSP套接字只发送一次字符串

ios - 如何在 iOS 应用程序中安装根证书,以便在从 UIWebView 打开 URL 时信任它?

iphone - 在 iOS 中将单元格添加到 UITableView 的底部

iphone - 大小和字体 :forwidth:linebreakmode