首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置WebSocket服务器以接受安全连接请求

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

Stack Overflow用户
提问于 2019-03-11 07:51:43
回答 2查看 1.2K关注 0票数 1

在应用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服务器的代码

代码语言:javascript
复制
public function handle()
{
    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new WebSocketController()
            )
        ),
        8090
    );
    $server->run();
}

我没有配置apache来运行websocket服务器来接受安全连接请求。可能是由于这个原因,我收到了一个错误。这意味着我将向不安全的websocket服务器发送安全连接请求。如果我是对的,你能告诉我如何配置我的websocket服务器,以便它能够接受安全的连接请求。

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

我要求你给出一个明确的解决办法来解决这个问题。我不使用nginx,我在Lampp.上使用apache。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-19 16:02:59

有人解决了我的问题。因此,我在这里张贴解决方案,以帮助其他人。我犯了两个错误。

  • 我正在使用来自cloudflare的SSL,这会导致一些问题。所以我买了一个付费的SSL证书。
  • 我不为wss配置websocket服务器

下面是用棘轮为Laravel中的wss配置websocket服务器的代码

代码语言:javascript
复制
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();

}
票数 1
EN

Stack Overflow用户

发布于 2019-03-15 19:26:44

cloudflare不适用于端口8090,这里是Cloudflare支持的端口列表。

还请尝试http://sitemeer.com/#https://yourDomain:8090以查看服务器+域是否提供ssl服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55097326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档