首页 文章

简单的聊天应用程序(我应该使用套接字吗?苹果应用程序商店会批准吗?)

提问于
浏览
1

我知道一个涉及“聊天功能”的应用程序,基本上是人们互相聊天的能力 . 因为通过服务器发送消息会很慢(如果你有新的消息,每隔一秒检查服务器就很糟糕)我想使用套接字来实现点对点聊天能力,而不是通过服务器 .

我的2个问题:

1)套接字编程是开发聊天程序的最佳方式吗?我知道有推送通知服务,但我认为它不能用于聊天程序 . 如果你想象有5000人聊天并且不得不每秒轮询服务器,那么通过服务器似乎有点不好 .

2)Apple是否会批准使用具有使用套接字的点对点聊天程序的应用程序?

谢谢 .

1 回答

  • 2

    套接字确实合适 . 但是你最好使用客户端/服务器方法而不是P2P方法 .

    多年来我一直致力于一个非常着名的即时消息服务,我可以绝对告诉你,只要你的服务器不慢,通过服务器就不会很慢 .

    客户端/服务器有很多优点 . 也就是说,它并不像任何类型的P2P连接那样困难,因为NAT和防火墙等问题使直接套接字连接变得困难和不可靠 . 此外,无论如何,您都需要一个消息服务来让客户交换IP地址 .

    您声明客户端或服务器必须“轮询”的假设并不是可扩展系统的工作方式 . 您应该使用持久性TCP套接字,并通过当前存在的任何可用异步方法来查看扩展套接字服务 . select(),poll(),Linux上的epoll和Windows上的IO完成端口都是在没有定期轮询的情况下同时连接数千个套接字的技术 .

    我的建议 - 只需部署一个XMPP / Jabber服务器 . 大多数实现都可以很好地扩展到成千上万的客户端 . 然后你的聊天程序只是一个XMPP客户端套接字 . 一些Jabber服务器甚至支持HTTP连接,用于仅通过http或http代理服务器进行用户访问的情况 . 我曾经和_1335068一起玩了一会儿,并且得到了合理的印象 .

    我很确定iOS有套接字,并且Apple允许这样做 . 我只知道那些曾经在iOS产品上工作过的人 . 除了通知之外,您可能不应该使用推送通知服务来唤醒您的应用程序,因为它需要执行某些操作 .

    希望这可以帮助 .

相关问题