Laravel 5 如何配置WebSocket服务器以接受安全连接请求
在应用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服务器的代码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连接
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服务器
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后查看更多信息。见最后三段。