问题描述
我是vps托管的新手,我的网站托管在digitalocean上,我在我的PHP应用程序中使用棘轮库(http://socketo.me)。它可以在localhost上运行,但不能在服务器上运行。
我点击了以下链接,但是当我重新启动Nginx时,它说:“ Nginx.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl status Nginx.service”和“ journalctl -xe”。
How to open wss: or ws: port on my website?
在server.PHP中:
<?PHP
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
require dirname(__DIR__) . '/vendor/autoload.PHP';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),8080
);
$server->run();
在我的客户端代码中:
if(window.WebSocket){
var conn = new WebSocket('wss://mydomain.com');
......
......
}
在我的Nginx配置文件(/etc/Nginx/sites-available/mydomain.com )
server {
server_name mydomain.com www.mydomain.com;
root /var/www/www.mydomain.com;
index index.html index.htm index.PHP;
location / {
try_files $uri $uri/ =404;
}
location ~ \.PHP$ {
include snippets/fastcgi-PHP.conf;
fastcgi_pass unix:/var/run/PHP/PHP7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-Nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.mydomain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = mydomain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name mydomain.com www.mydomain.com;
return 404; # managed by Certbot
}
在我的控制台中显示
“与'wss://mydomain.com/'的WebSocket连接失败:WebSocket握手期间出错:意外的响应代码:200”
注意:我的域有ssl。我是新手,有人可以指导我吗?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)