在应用ssl之前(我从cloudflare获得),我的网站是通过http加载的,我的套接字连接是在ws上完成的,它运行良好,连接成功。
conn =新的WebSocket('ws://myDomain:8090');
但是在应用ssl之后,当我的网站通过https加载时,我使用wss (否则会产生错误)。
conn =新的WebSocket('wss://myDomain:8090');
现在它给了我错误
到'wss://myDomain:8090/‘的WebSocket连接失败:连接建立中的错误: net::ERR_CONNECTION_TIMED_OUT
websocket服务器启动超过8090端口,我也将端口更改为9991,但没有成功。
以下是websocket服务器的代码
public function handle()
{
$server = IoServer::factory(
new HttpServer(
new WsServer(
new WebSocketController()
)
),
8090
);
$server->run();
}我没有配置apache来运行websocket服务器来接受安全连接请求。可能是由于这个原因,我收到了一个错误。这意味着我将向不安全的websocket服务器发送安全连接请求。如果我是对的,你能告诉我如何配置我的websocket服务器,以便它能够接受安全的连接请求。
,我再次告诉您,我正在使用来自云flare的SSL,告诉我我的域,他们为我提供名称服务器,用我现有的名称服务器替换它。
我要求你给出一个明确的解决办法来解决这个问题。我不使用nginx,我在Lampp.上使用apache。
发布于 2019-05-19 16:02:59
有人解决了我的问题。因此,我在这里张贴解决方案,以帮助其他人。我犯了两个错误。
下面是用棘轮为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();
}发布于 2019-03-15 19:26:44
cloudflare不适用于端口8090,这里是Cloudflare支持的端口列表。
还请尝试http://sitemeer.com/#https://yourDomain:8090以查看服务器+域是否提供ssl服务。
https://stackoverflow.com/questions/55097326
复制相似问题