【问题标题】:How to open wss: or ws: port on my website?如何在我的网站上打开 wss: 或 ws: 端口?
【发布时间】:2021-02-09 03:33:02
【问题描述】:

我正在使用 Ratchet-lib/socketo.me 作为我的聊天应用程序的 websocket。当我输入 localhost:8080 时,它可以完美运行。

当我在线发布应用程序时,如何将我的 wesbite 设置为 wss://? pr smthg如何打开端口?

这是连接代码:

$(document).ready(function(){
   update_chat_history_data();
    var conn = new WebSocket('wss://localhost:8080');
conn.onopen = function(e) {
    console.log("Connection established!");
};

我想将 var conn = new WebSocket('wss://localhost:8080'); 更改为 var conn = new WebSocket('wss://mywebsite:port' );

谢谢

【问题讨论】:

  • 那么......是什么阻止你改变它?我不明白这个问题。您是否在您网站的服务器上部署了 PHP 代码并开始运行?
  • 我是 websockets 的新手,所以......我要做的就是当我在 localhost 上测试应用程序消息传递时,服务器与 composer 一起运行,一切都很棒!现在我在网上发布了我的网站,如何启动服务器或使其运行?我试图把我的域名而不是本地主机,它说“失败:在收到握手响应之前连接关闭”
  • composer 是一个包管理器,它不运行服务器,我不知道你的意思。您使站点以与在本地主机中运行相同的方式运行(假设您是从命令行执行的??) - 就像在棘轮演示中一样:socketo.me/docs/hello-world
  • 没错!我使用了 localhost 的命令行!
  • 好吧,你需要在你的网站服务器上做同样的事情。 (不过,如果您购买了便宜的共享主机,您可能没有权限这样做。您可能需要 VPS 或云设置。)

标签: php websocket server port


【解决方案1】:

如果您在生产环境中使用 nginx,并且默认情况下它具有启用 ssl 的含义 (https)。比你可以对你的棘轮服务器做反向代理。

upstream websocketserver {
    server ratchet:8080;
} 

server {

listen 443 ssl;
#you main domain configuration

location /ws/ {
            proxy_pass http://websocketserver;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_read_timeout 86400; # neccessary to avoid websocket timeout disconnect
            proxy_redirect off;
    }

}

您将能够使用棘轮网址,例如:wss://yourdomain.com/ws

这就是它与 nginx 一起工作的方式,但我猜想与 apache 或其他一些 Web 服务器相同。 只做反向代理!

【讨论】:

  • 它作为微服务运行良好。假设你有一个带有 nginx 的容器和另一个带有棘轮的容器。
  • 嘿兄弟,我不知道把这段代码放在哪里......你能告诉我一步一步怎么做吗?我应该把它写在我的 server.php 还是在哪里?
  • 您好,不,这是服务器配置。首先你能告诉我你使用的是 nginx 还是其他服务器?
  • 正如我所说的我还在学习东西,我不明白你所说的 nginx 是什么意思,但现在我使用免费主机来试用我的应用程序,按照 ytb vid 安装棘轮并使其工作,它在我的本地主机(xampp)上运行 server.php(php server.php)的作曲家,现在我想知道在我发布我的网站后如何获得可以运行我的聊天应用程序的 ws 或 wss .. 我尝试了 wss://echo.websocket.org 但它工作正常但我的 json 数据中的一些变量显示为 undefined ..
  • 有了免费托管,您无能为力。我假设你可以访问你的服务器。我的意思是能够配置托管您的网站的服务器。你的免费域名是什么?当你在这个免费主机上运行 php serve.php 时会发生什么?
猜你喜欢
  • 1970-01-01
  • 2014-03-02
  • 2021-08-14
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多