在Azure中使用IIS配置WebSocketBundle


Configuring WebSocketBundle in Azure with IIS

我试图配置GoS'WebSocketBundle在Symfony2与php 5.6使用Windows Server 2012/IIS代替内置服务器,我没有问题,当我在Ubuntu中使用内置服务器。

每当我尝试访问IIS给我一个403错误,我已经尝试使用SimpleWebSocket Chrome插件没有成功。

我正在使用websocket的基础url, ws://my.example.com,我已经尝试过wss => wss://my.example.com

服务器托管在Azure中,启用了Websockets。

任何想法?

谢谢,

Web Apps只支持HTTP的80端口和HTTPS的443端口。不同的端口配置将被忽略,流量将被路由到80或443。

我们需要为WebSocketBundle服务器配置一个超过80的额外端口。在本地环境中,如果我将端口设置为80,我必须以管理员权限运行其命令来启动websocket服务器。

我潜入GOS/WebsocketBundle SDK,发现它使用stream_socket_server()来启动websocket服务器。因此,我在Azure上创建了一个简单的测试,代码片段如下: <?php $socket = stream_socket_server("tcp://0.0.0.0:80", $errno, $errstr); if (!$socket) { echo "$errstr ($errno)<br />'n"; } else { while ($conn = stream_socket_accept($socket)) { fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "'n"); fclose($conn); } fclose($socket); } ?> 结果是我们没有成功运行脚本的权限。我们可以将套接字服务器应用程序部署在Azure虚拟机或云服务上作为解决方案。