我的基于Flash的聊天客户端是不是足够强大?有什么其他的方式是吗?

StackOverflow https://stackoverflow.com/questions/2373026

  •  24-09-2019
  •  | 
  •  

我已经开发了一个基于Flash的聊天客户端显示的消息发布由属于一组与他们的用户名和写作的时间以及用户。数据存储在MySQL数据库与组ID,用户ID和消息,以便它持续超过聊天会话,并允许用户在以后的时间登录看到的讨论,聊天的少,更多的是公告板。当用户写一条消息我想聊天客户端的更新即时的似乎是实时聊天。我的解决方案迄今已包括在调用该查询新的评论数据库,这个返回Flash PHP页面我的闪存代码区间。

我想从什么伊夫读,这种方法被称为长轮询?那正确吗?是这个量足够强大的?我会得到更好看的数据推送到如果有改变的客户端?如何检测这些变化?我已经看过APE例如,但我不认为这在数据库中存储的消息。

任何建议?

有帮助吗?

解决方案

有关投票的坏事,它可以成为昂贵的相当快。

让我们假设,你有10000位用户在线,谁想要聊天有没有超过1秒更大的延迟。然后将妍轰击你的服务器以每秒10000个请求。

对于较小的东西或事情,不一定是最新的,投票是一个很好的方法,因为它的简单,并不能真正出问题。

如果这仅仅是一个小社区,高达使用聊天100人,那么这应该不是问题。

除此之外,您可以使用APE或SmartFox,或Red5的还是有很多不同的东西来创建拥有所有客户端并通知任何改变他们的永久连接持久中继服务器,即一台服务器(例如,新的消息)

一如既往,我个人的建议是使用 HAXE 。您可以使用聊天教程上手。 HAXE有相当陡峭的学习曲线,但我认为这是完全值得的。我很高兴地离开这两个ActionScript和PHP背后。

编辑:你形容也不为长轮询。此外,你也很难做长轮询与PHP,至少如果classicaly与Apache使用。 Apache将创建一定数量的PHP进程。任何时候,一个请求到达时,它会寻找一个免费的PHP程序,让它处理请求。当PHP程序完成后,将响应返回给客户端。如果没有自由的过程可用,它将直到进程变得可用缓冲要求。这样,就可以完全阻止你的整个服务器,如果你想这样做用PHP长轮询的传统方式。

其他提示

如果你想通知每当接收到一个新的消息,那么应用程序你将不得不实行某种形式的服务器上的应用程序的监视数据库/提醒在它的变化,然后通过更新给客户端。

这应该不仅仅是投票更有效,因为如果你认为低交通场景,具有查询,你会敲地狱出来的服务器,不管 - 这样你只产生流量时,有一个理由...

当你在一个注释类型,你的客户可以通知该应用程序直接(通过Web服务)的变化,然后该助手应用程序可以更新数据库...

应该说,虽然我在聊天程序方面的专家 - 从未涉及一个个人...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top