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

7

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

当我在线发布应用程序时,如何将我的网站设置为wss://?如何打开端口或其他操作?

这是连接代码:

$(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 代码部署到你的网站服务器上并开始运行它了? - ADyson
Composer是一个包管理器,它不运行服务器,我不知道你的意思。您可以通过与本地主机相同的方式使站点运行(假设您是从命令行执行的?)-就像在Ratchet演示中一样:http://socketo.me/docs/hello-world - ADyson
是的,完全正确!我在本地主机上使用了命令行! - Ali Jand
好的,你需要在你的网站服务器上做同样的事情。(如果你购买了廉价的共享主机,可能没有权限这样做。你可能需要一个VPS或云设置。) - ADyson
啊,好的,我还没有购买域名,所以我正在使用免费子域名托管进行测试,我想这就是为什么它不允许我这样做!那么当我获得完全付费的托管后,我就能像在命令行中一样运行服务器了吗?然后我可以使用wss://mydomain吗?! - Ali Jand
显示剩余2条评论
1个回答

7
如果您正在生产环境中使用 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的工作方式,但我猜与apache或其他Web服务器相同。 只需进行反向代理!


它作为微服务运行良好。假设您有一个带有nginx的容器和另一个带有ratchet的容器。 - AXheladini
1
嘿兄弟,我想不出该把这段代码放在哪里...你能告诉我一步一步该怎么做吗?我应该把它写在我的server.php文件中还是其他地方? - Ali Jand
你好,这是服务器配置。首先,您能告诉我您是否正在使用nginx或其他服务器吗? - AXheladini
我正在使用awardspace.com的免费托管,但我认为我无法访问修改服务器设置,但没关系,如果有一天我获得高级托管,我能否创建自定义ws://聊天应用程序?我只需要编辑服务器配置,然后我的网站就可以接受websocket了吗?最后一个问题,您知道任何公共ws//服务器可以允许我在我的网站上使用它而没有像ws://echo.websocket.org这样的限制吗? - Ali Jand
是的,有了服务器访问权限,您可以按照自己的需求进行配置。如果使用的是专用主机,托管公司也可以提供帮助。 - AXheladini
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接