Php 如何在我的网站上打开wss:或ws:端口?

Php 如何在我的网站上打开wss:或ws:端口?,php,websocket,server,port,Php,Websocket,Server,Port,我正在使用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'); con

我正在使用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');带有变量conn=新WebSocket('wss://mywebsite:port');


如果您在生产环境中使用nginx,并且默认情况下它具有启用ssl的含义(https),请感谢。这样,您就可以对ratchet服务器执行反向代理

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;
    }
}

您将能够使用ratchet url,如:wss://yourdomain.com/ws

这就是它与nginx的工作方式,但I guss与apache或其他一些web服务器的工作方式相同。
只要做反向代理

那么…是什么阻止你改变它?我不明白这个问题。你在网站服务器上部署了PHP代码并开始运行了吗?我是websockets的新手,所以。。。我所要做的就是在localhost上测试应用程序消息传递,服务器使用composer运行,一切都很好!现在我在线发布了我的网站,如何启动或运行服务器?我试着用我的域名代替本地主机,它说“失败:在收到握手响应之前连接关闭”。composer是一个包管理器,它不运行服务器,我不知道你的意思。您使站点以与在本地主机中运行相同的方式运行(假设您是从命令行运行的)?就像ratchet演示中的一样:是的,完全正确!我使用了localhost的命令行!好吧,你需要在你的网站服务器上做同样的事情。(如果你买了便宜的共享主机,你可能没有这样做的权限。你可能需要一个VPS或云设置。)它作为一个微型服务很好用。假设你有一个带有nginx的容器和另一个带有ratchet的容器。嘿,兄弟,我不知道把代码放在哪里。。。你能告诉我一步一步做什么吗?我应该把它写在我的server.php或哪里?您好,不,这是服务器配置。起初,你能告诉我你是在使用nginx还是其他服务器吗?正如我说的,我还在学习东西,我不明白你说的nginx是什么意思,但现在我用一个免费的主机来尝试我的应用程序,然后用ytb视频安装ratchet并使其工作,它在我的本地主机(xampp)上工作,编写器运行server.php(php server.php),现在我想知道,在我发布了我的网站之后,我怎样才能获得一个可以运行我的聊天应用程序的ws或wss。。我试过了wss://echo.websocket.org 但是它工作得很好,但是我的json数据中的一些变量显示为未定义的。有了免费主机,你就做不了什么。我假设你可以访问你的服务器。我的意思是能够配置承载web的服务器。你的免费域名是什么?当你在这个免费主机上运行php service.php时会发生什么?