【问题标题】:Websocket with Play! Framework is failing with vhostsWebsocket 与 Play!框架因虚拟主机而失败
【发布时间】:2023-03-26 13:10:01
【问题描述】:

我无法在本地计算机上通过 apache2 创建启用 vhots 的 websocket。在FF:

WebSocket is not defined
var socket = new WebSocket('ws://test.localhost.in/soc') 

Chrome 出现 404 错误。

Routes 文件已正确定义。

WS      /soc                                    Home.HomeWebSocket.listen

虚拟主机配置:

<VirtualHost *>
    ProxyPreserveHost on
    ServerName localhost.in
    ServerAlias *.localhost.in
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    SetEnv force-proxy-request-1.0 1
    SetEnv proxy-nokeepalive 1
</VirtualHost>

我可以确认这是由于 VHosts,因为我可以通过 localhost:9000/ 成功运行聊天示例,但不能通过 test.localhost.in。

【问题讨论】:

    标签: playframework websocket vhosts


    【解决方案1】:

    Apache 的代理模块显然不知道 WebSockets。 您可以尝试使用mod_pywebsocket

    也可以看看this question

    【讨论】:

    • 随玩!哪个更好:运行 apache 还是 Nginx?
    • 这个问题太笼统,无法简单回答。我个人在 nginx 后面运行 Play,但这只是个人喜好问题——我真的没有任何高性能要求。我建议你写下你对前端 HTTP 服务器的需求(例如负载平衡、虚拟主机、WebSocket 支持),并检查哪个网络服务器支持它。然后测试/基准测试你喜欢的那些。该手册有一个关于webserver configurationdeployment options 的部分。
    • 谢谢。我浏览了文档,发现 2012 年 2 月,近 9.7% 的网络是由 nginx 服务器提供的。许多大型俄罗斯网站,如 Yandex 等使用它
    • 对于“静态”使用作为前端 nginx 绝对是 apache2 更好的选择 - 真正适合该任务,更轻更快,出色的缓存系统等。存在替代方案,例如 lighttpd。对于托管动态网站(wsgi、php 等),答案当然更复杂......请注意 nginx conf 对新手来说可能是地狱!我的 2 美分
    • @Carsten 你能看看这个问题吗:stackoverflow.com/questions/9372722/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2011-02-12
    • 2014-01-02
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多