代理WS(Web套接字)连接?

时间:2016-10-10 11:19:12

标签: javascript websocket

我有一个连接到Web套接字但它仅限于Intranet。 看起来像这样:

socket = new WebSocket("ws://xx.xxx.6.98:8200/demo/");

可以从服务器端代理它,以便可以从外部世界访问它吗?

类似的东西:

socket = new WebSocket("ws://mysite.com/getWebSocket/demo/");

2 个答案:

答案 0 :(得分:1)

使用Nginx,您可以将流量转发到目标服务器。以下是如何代理转发Socket.IO Websocket的示例。

location /socket.io/ {
    proxy_pass                      http://xx.xxx.6.98:8200;
    proxy_http_version              1.1;
    proxy_set_header Upgrade        $http_upgrade;
    proxy_set_header Connection     "upgrade";
}

有用的链接:https://www.nginx.com/blog/websocket-nginx/

答案 1 :(得分:0)

当然,我使用SignalR在服务器上运行它,并使用Apache上的ProxyPass将其暴露给互联网。

所以你需要的是一个反向代理,你也可以让它与Nginx一起使用,但这与Apache有关:

<div class="row" ng-controller="audiotest">
<div class="row">

   <button type="button" ng-click="recognize()"> Attempt recognition </button>

<p> Result is {{myResult}} </p>

</div>
</div>

你在域或服务器IP上有这个,当你去ipaddressordomain.com/ws时,你实际上去了ws://xx.xxx.6.98:8200 / demo /