Apache 网络套接字设置

Apache websocket setup

我试图在我的本地机器上设置 websocket 来测试它,但我根本无法让它工作,也找不到任何实际解决它的指南。

总而言之,谁能告诉我我的设置有什么问题?

我运行正在使用 Ububtu 16.04 和 Apache 2.4.18 我启用了 mod_proxy 和 mod_proxy_wstunnel

我的 Apache 配置如下所示

<VirtualHost *:80>
    ServerName socket.localhost

    ProxyRequests Off
    ProxyPass "/ws2/"  "ws://localhost:8546/"
    ProxyPass "/wss2/"  "wss://localhost:8546/"
</VirtualHost>

在客户端我有这个javaScript

<script type="text/javascript">
    var socket = new WebSocket('ws://socket.localhost');
    socket.send('Test');
</script>

我运行宁

netcat -p 8546 -l

查看任何连接

最后我的主机文件中有这一行

127.0.0.1   socket.localhost

每当我 运行 JavaScript 我得到错误

Firefox can’t establish a connection to the server at ws://socket.localhost/.

您 javascript 代码应使用地址 ws://socket.localhost/ws2,因为这是您在 Apache 代理配置中配置的内容。

您在 ws://localhost:8546 确实有一个 websocket 服务器 运行 吗?你没有在你的描述中提到这一点。