rails和iphone本机应用程序之间的套接字连接

rails和iphone本机应用程序之间的套接字连接,iphone,ruby-on-rails,sockets,websocket,chat,Iphone,Ruby On Rails,Sockets,Websocket,Chat,我有一个iphone应用程序,rails作为后端服务器 现在我需要使用套接字连接实现聊天功能 许多示例向您展示了如何在浏览器中使用套接字实现聊天 这里我需要的是如何实现一个应用程序,您可以在rails应用程序中创建socket服务器,并在iphone应用程序中创建客户端,该客户端将侦听我提供给它们的频道 我尝试使用faye(示例仅给出了如何在浏览器中实现客户端)和iphone的fayeObjC库来创建客户端,但无法收听此库中的频道。我知道我在这里实现的一定是错误的 我也将在这里分享我的代码,但首

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

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

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

这里我需要的是如何实现一个应用程序,您可以在rails应用程序中创建socket服务器,并在iphone应用程序中创建客户端,该客户端将侦听我提供给它们的频道

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

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

我也很欣赏一些示例的链接,其中socket服务器位于rails中,客户端位于iphone应用程序中

感谢您的帮助,并且大多数情况下需要一个正确的方向来实施它。


更新

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

我知道by square是一个强大的原生Objective-C库。但它并没有提供你想要的通道抽象

如果您考虑外包WebSoT连接,那么您可以使用托管服务,例如,我为谁工作。您可以使用在频道上发布消息(触发事件)。您可以使用其中一个订阅频道和接收消息


其他解决方案也将有Objective-C库,您可以通过该库找到它们的列表。

您可以查看有关TCP套接字的信息:

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

您必须记住对等通信(Chat)的两个主要问题:可达性和在应用程序处于后台时如何接收新消息(获取通知)。 最后,您可以使用APNS方法:一个不可见的通知将被推送到iPhone上,表明新消息已准备好阅读。因此,你的应用程序将请求未读消息(像WhatsApp这样的应用程序所做的)

除了TCP套接字,您还可以使用websockets(HTTP-因此没有防火墙问题)。 班上最好的。 在这里您可以找到wiki(您还可以在那里找到Ruby的扩展)

这里有一个例子

Jabber

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


在这里,您将了解有关为iOS开发Jabber客户端的所有内容(使用户可以登录、添加好友和发送消息;如何安装和配置jabber服务器、创建帐户以及从iOS应用程序与服务器交互

可能会对您有所帮助……嘿,非常感谢您提供了这些链接。帮助您澄清了一些概念。虽然我再次尝试了faye组合,但效果不错。虽然我很想尝试更多的选择。所以…:)如果这有帮助的话…我可以把我的评论…像一个答案一样…你能接受吗?:)托尼很抱歉这么晚才回复。但是一定要添加它作为一个答案,我会接受的。顺便说一句,我喜欢这个链接,这正是我想要实现的,但任何关于如何使用ruby实现的想法。同样,通过ruby创建套接字也将是缓慢且不安全的。因此,如果您能提供任何帮助,使其安全且可扩展,我们也将不胜感激。实际上,我并不寻求外包Websocket连接,我只想实现我自己的连接,因此,我可以让我的自定义方法有一个自定义规则来检索消息。但是谢谢你的帮助。