Laravel 5 如何配置WebSocket服务器以接受安全连接请求

Laravel 5 如何配置WebSocket服务器以接受安全连接请求,laravel-5,websocket,ratchet,Laravel 5,Websocket,Ratchet,在应用ssl(我从cloudflare获取)之前,我的网站是通过http加载的,我的套接字连接是通过ws 它工作正常,连接成功 conn=newwebsocket('ws://myDomain:8090') 但在我的网站通过https加载时应用ssl后,我使用wss(否则会给出错误) conn=新的WebSocket('wss://myDomain:8090'); 现在它给了我一个错误 WebSocket连接到'wss://myDomain:8090/'失败:建立连接时出错:网络::错误\u连接

在应用ssl(我从cloudflare获取)之前,我的网站是通过http加载的,我的套接字连接是通过ws 它工作正常,连接成功

conn=newwebsocket('ws://myDomain:8090')

但在我的网站通过https加载时应用ssl后,我使用wss(否则会给出错误)

conn=新的WebSocket('wss://myDomain:8090');

现在它给了我一个错误

WebSocket连接到'wss://myDomain:8090/'失败:建立连接时出错:网络::错误\u连接\u超时\u

websocket服务器通过8090端口启动,我也将端口更改为9991,但无效

以下是websocket服务器的代码

public function handle()
{
    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new WebSocketController()
            )
        ),
        8090
    );
    $server->run();
}
我没有将apache配置为运行websocket服务器以接受安全连接请求。可能是由于这个原因,我收到了一个错误。这意味着我正在向不安全的websocket服务器发送安全连接请求。如果我是对的,您能告诉我如何配置我的websocket服务器,以便它能够接受安全连接请求吗

我再次告诉您,我使用的是cloud flare的SSL。我告诉我我的域,他们为我提供名称服务器,用我现有的名称服务器替换它


我要求你给出一个明确的解决方案我没有使用nginx,我在Lampp上使用apache。

Cloudflare不支持端口
8090
,是Cloudflare支持的端口列表


也可以尝试
http://sitemeer.com/#https://yourDomain:8090
查看您的服务器+域是否提供ssl服务

有人解决了我的问题。所以我在这里发布解决方案来帮助其他人。我犯了两个错误

  • 我正在使用cloudflare的SSL,这会导致一些问题。所以我买了一个付费SSL证书
  • 我没有为wss配置websocket服务器
下面是使用Ratchet为Laravel中的wss配置websocket服务器的代码

public function handle()
{

    $loop   = Factory::create();
    $webSock = new SecureServer(
        new Server('0.0.0.0:8090', $loop),
        $loop,
        array(
            'local_cert'        => '', // path to your cert
            'local_pk'          => '', // path to your server private key
            'allow_self_signed' => TRUE, // Allow self signed certs (should be false 
                                            in production)
            'verify_peer' => FALSE
        )
    );
    // Ratchet magic
    $webServer = new IoServer(
        new HttpServer(
            new WsServer(
                new WebSocketController()
            )
        ),
        $webSock
    );
    $loop->run();

}

您的nginx配置是什么样子的?你确定你是通过安全连接服务的吗?我没有安装nginx,我在Lampp上使用apache。好吧……你在问题中提到nginx,所以我以为你在使用它。您是如何配置apache以接受安全websocket连接的?我没有进行任何配置。我认为我的websocket服务器只能接受不安全的websocket连接。您能否告诉我如何进行这些配置,以便我的websocket服务器可以接受安全连接。请查看编辑后的问题。您可以在代码snippest后查看更多信息。见最后三段。