Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Play框架:使用Apache保护WebSocket_Apache_Ssl_Websocket_Playframework 2.0 - Fatal编程技术网

Play框架:使用Apache保护WebSocket

Play框架:使用Apache保护WebSocket,apache,ssl,websocket,playframework-2.0,Apache,Ssl,Websocket,Playframework 2.0,Play 2框架不支持安全WebSocket。因此,我使用nginx作为代理,作为WSS连接的SSL端点(如本文所建议的)。 一切都与nginx一起工作。您知道Apache HTTP服务器是否也可以做到这一点吗?我应该如何更改httpd.conf以将Apache作为WSS的SSL端点?您为什么认为Play不支持安全websocket?确实如此,安全websocket只是https上的常规websocket协议,而不是HTTP。只要启用https,就可以获得安全的websocket支持 您可以使用

Play 2框架不支持安全WebSocket。因此,我使用nginx作为代理,作为WSS连接的SSL端点(如本文所建议的)。
一切都与nginx一起工作。您知道Apache HTTP服务器是否也可以做到这一点吗?我应该如何更改httpd.conf以将Apache作为WSS的SSL端点?

您为什么认为Play不支持安全websocket?确实如此,安全websocket只是https上的常规websocket协议,而不是HTTP。只要启用https,就可以获得安全的websocket支持

您可以使用以下方法在Apache中代理WebSocket:


但这样做会让你发疯,Apache使用每个连接一个线程,websockets使用持久连接,当你期望很多连接时,每个连接使用一个完整的线程是一种资源浪费,像nginx这样的非阻塞代理更有意义。

谢谢。我不知道nginx是非阻塞的。现在我明白了为什么在这种情况下不使用Apache。然而,我试图通过在application.conf中设置“https.port=9433”来启用https,但它不起作用。我没有设置其他参数(play.server.https.keyStore.path、type、password和algorithm),因为我读到它们有默认值。浏览器开发人员控制台中有什么错误?请注意,在没有任何其他配置的情况下,Play会生成一个自签名证书,默认情况下浏览器会拒绝该证书。您需要将浏览器配置为信任该证书。WebSocket客户端使用libwebsocket以C编写。但我认为它和浏览器是一样的。我应该将其配置为信任证书。