首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP websockets在wss://上不工作

问PHP websockets在wss://上不工作
EN

Stack Overflow用户
提问于 2017-08-17 22:23:13
回答 1查看 538关注 0票数 0

我把我的网站移到了https://.在http to socket上有一个通过ws: //sitename.com: 3003的连接,现在有必要在wss: //sitename.com: 3003上提供它们。我该怎么做呢?谢谢。

PHP:

代码语言:javascript
复制
$loop   = React\EventLoop\Factory::create();
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:3004');
$pull->on('message', array($pusher, 'onMessage'));

$webSock = new React\Socket\Server($loop);
$webSock->listen(3003, '0.0.0.0');
$webServer = new Ratchet\Server\IoServer(
  new Ratchet\Http\HttpServer(
    new Ratchet\WebSocket\WsServer(
      new Ratchet\Wamp\WampServer(
        $pusher
      )
    )
  ),
  $webSock
);

$loop->run();

JS:

代码语言:javascript
复制
window.phpSocket = new ab.Session('wss://sitename.com:3003',

nginx:

代码语言:javascript
复制
server {
    listen   443 ssl;
    keepalive_timeout   70;

    client_max_body_size    500M;
    root /var/www/path/to/site/root;
    index index.php;
    server_name sitename.com;
    gzip_static on;
    gzip            on;
    gzip_min_length 1000;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain application/xml text/css text/javascript application/javascript;


    ssl                     on;
    ssl_certificate         /etc/letsencrypt/live/sitename.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/sitename.com/privkey.pem;
    ssl_session_cache       shared:SSL:10m;
    ssl_session_timeout     10m;
EN

回答 1

Stack Overflow用户

发布于 2017-08-18 18:47:56

因为您的nginx conf没有指定如何将您的客户端wss转发到您在3003处监听的服务器端口。

您应该将其添加到nginx.conf中的服务器块中

代码语言:javascript
复制
location /wss/ {
    proxy_pass http://localhost:3003;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

并将您的Js代码更改为:

代码语言:javascript
复制
window.phpSocket = new ab.Session('wss://sitename.com/wss/',

有关如何使用nginx作为websocket_proxy的更多信息,请参考https://www.nginx.com/blog/websocket-nginx/

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

https://stackoverflow.com/questions/45737771

复制
相关文章

相似问题

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