如何在后台处理TCP连接?

时间:2013-09-19 18:12:17

标签: iphone objective-c sockets tcp

我有一个应用程序,可以在赌场玩TCP Server的宾果游戏。当玩家到达赌场并且玩家按下游戏时,该应用程序将与Bingo Server连接。

服务器通过TCP / IP连接将新球号发送到iOS设备。

如果用户按下主页按钮,应用程序将转到后台,并且与服务器的TCP连接保持活动状态,因为我将这些属性用于使用以下内容创建的Streams:

[inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType] ;
[outputStream setProperty:NSStreamNetworkServiceTypeVoP forKey:NSStreamNetworkServiceType] ;

如果应用程序转到后台,我需要更新游戏,因此我使用NSStreamNetworkServiceTypeVoIP在应用程序中进行更新。

如果玩家赢了,应用程序会在有本地通知的获胜者时警告用户。

如果应用程序在后台运行超过600秒,我将关闭与Bingo Server的TCP连接。

当玩家离开赌场时,应用程序关闭TCP连接并重置游戏。

我已经读过,如果不是真正的VOIP应用,Apple会拒绝应用。

Apple无法测试应用程序,因为需要墨西哥城的宾果服务器

所以我不知道我的应用程序是否可以发布到App Store。

https://pbs.twimg.com/media/BUYzUHkCYAAwhyG.jpg

1 个答案:

答案 0 :(得分:0)

他们会完全拒绝它,而不是按照你的建议实际使用VOIP。通过其他技术(如后台应用程序刷新(iOS7))了解实现所需内容的其他方法。

我还看到人们在后台播放静音音频文件,以便在睡眠模式下达到空闲状态。虽然不鼓励有很多人在现场应用程序中使用该技术。 Apple甚至可以在iTunes上拥有无声音频文件。我认为主要的关键是让用户选择空白音频文件而不是将其设置为默认值。 ; - )