2010-04-06 46 views
1

我想创建一个iPhone聊天应用程序,我没有任何经验的套接字编程,所以你可以帮我理解我如何从iPhone应用程序做长轮询?如何从iPhone应用程序进行长轮询?

也可以NSURLConnection用于这个目的,或者我们需要使用一些低级别的API?

是否有相同的库可用?

回答

2

结账CocoaAsyncSocket

+0

@shaggy谢谢......我已经这样做了,但是还有没有其他的方式来做到这一点,或者它是唯一的库。 – 2010-04-06 08:48:23

+0

CocoaAsyncSocket使用低级CFStream框架来完成其业务。你总是可以重新实现他们自己使用CFStream所做的,或者如果你真的想使用CFSocket。或者你可以一路下降到BSD插座。但是如果你正在做套接字编程,在Cocoa中,对于iPhone,你应该从CocoaAsyncSocket开始。 – 2010-04-06 18:21:16

2

长轮询是针对JavaScript等语言的,无法打开持久连接。你仍然可以使用类似NSURLConnection的方式进行长时间轮询,但是通过CFStreamCreatePairWithSocketToHost或类似的方法,你可以更好地服务于打开一个完整的双向套接字。

长时间轮询基本上是一种已成为流行语的黑客行为。

+1

感谢您的澄清.....但您认为应该制定一个聊天应用程序的一般方法,这对我在这个方向取得进展将有实际的帮助。 – 2010-04-06 11:40:32

+0

聊天实际上比客户端更关注服务器。如果你选择一个像jabber这样的标准聊天服务器,那么iPhone可能有一个开源客户端实现。我没有用过,所以我会按照Shaggy的建议或谷歌你正在使用的特定聊天协议。 – drawnonward 2010-04-10 06:42:51