Erlang 当同时打开3个以上的选项卡时,Yaws进程会减慢

Erlang 当同时打开3个以上的选项卡时,Yaws进程会减慢,erlang,yaws,Erlang,Yaws,我有一个comet应用程序,它基于Erlang的gen_服务器,当与不同的浏览器一起使用时效果很好,但是当我用同一个浏览器打开一个页面的多个选项卡时,调用.yaws文件需要一段时间才能完成,有6个以上的选项卡,它甚至在关闭一半的选项卡之前都不会传递消息,尽管其他浏览器功能正常且 从另一个浏览器几乎可以立即交付 进一步解释 应用程序太复杂,无法添加到此处进行诊断,Comet/long轮询必须延迟.yaws文件的执行,但如何操作???这一定和yaws会话有关,这些是我做的测试。。。我在Opera、C

我有一个comet应用程序,它基于Erlang的gen_服务器,当与不同的浏览器一起使用时效果很好,但是当我用同一个浏览器打开一个页面的多个选项卡时,调用.yaws文件需要一段时间才能完成,有6个以上的选项卡,它甚至在关闭一半的选项卡之前都不会传递消息,尽管其他浏览器功能正常且 从另一个浏览器几乎可以立即交付

进一步解释

应用程序太复杂,无法添加到此处进行诊断,Comet/long轮询必须延迟.yaws文件的执行,但如何操作???这一定和yaws会话有关,这些是我做的测试。。。我在Opera、Chrome、Firefox以及他们的隐姓埋名上打开了6个标签,并作为6个不同的用户登录,它运行得非常好,我认为gen_服务器运行正常。现在,当我在浏览器A上打开3个选项卡,在浏览器B上打开一个选项卡(浏览器A的别名)时,我关闭所有浏览器并重新打开一个浏览器及其别名当我从浏览器B向a发送消息时,所有选项卡都会按预期接收消息,但当我从浏览器a向B发送消息时,打开6个或更多选项卡时需要一段时间,消息甚至在10分钟后也不会发送,因为长轮询通常会执行其任务,我认为这是导致问题的原因

更新 我已经尝试解决这个问题好几天了,最后我在yaws示例中发现了同样的问题

只需在7个或更多选项卡上打开下面的链接,然后边走边查看上次打开的选项卡

=>

您会注意到服务器没有按预期响应,这与我在长轮询中遇到的问题完全相同


如何克服此问题?

这不是Yaws的问题,而是浏览器对单个IP地址的服务器发送事件(SSE)连接数的限制。有些浏览器允许您配置更高的限制,有些则不允许,这意味着如果您需要使用SSE或长轮询,那么您将很难满足这些限制,并且必须为您的应用程序设计一种在这些限制内工作的方法


你可以考虑使用,因为它们不受同样严格的限制。

很难回答这个问题而不知道你的应用程序的更多细节,但是你试过写了一个非常简单的<代码> .yAs文件,只返回一个HTML字符串,看看这是否显示了同样的问题?鉴于您提到的
gen_server
,我怀疑您可能通过应用程序中的单个进程序列化请求。我的评论超出了它的限制,因此我将其包括在问题中,谢谢。抱歉,即使是新的详细信息也没有帮助。根本的问题是,您要求我们帮助分析我们没有详细信息的代码。你最好的办法是尝试用一个小例子来重现这一点,因为这样你要么会在你的代码中发现问题,要么就能给我们Yaws贡献者一些我们需要解决的问题。请注意,我们支持长时间投票已经多年了,我从来没有听说过有人有这样的问题。好的,我将用最少的功能重建所有东西,看看这是怎么回事。。非常感谢您的帮助)您好,@SteveVinoski请查看问题的更新部分。