国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Laravel Echo und Socket IO übertragen Abfrage 404 ERR_CONNECTION_CLOSED in Schleife
P粉029057928
P粉029057928 2024-03-26 16:36:46
0
1
672

Ich erstelle eine Website mit Laravel Echo Server, Socket IO und Redis. Das Problem, mit dem ich konfrontiert bin, ist, dass alles lokal funktioniert, aber nicht auf meinem VPS-Server.

Wenn der Benutzer eine Ansicht betritt, die Socket IO erfordert, wird eine 404-Schleife angezeigt https://example.com:6001/socket.io/?EIO=4&transport=polling&t=O0DofMO net::ERR_CONNECTION_CLOSED

Auf Firefox kann ich diesen Fehler sehen, der detaillierter beschrieben wird

Ich wei? nicht, was es tun soll, aber ich denke, Socket IO versucht, ewig eine Verbindung herzustellen, aber es gelingt ihm nicht.

Verwendung von Laravel 6 auf Apache. Das ist meine Konfiguration:

apache.conf:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
            ServerName www.example.com
            ServerName example.com
            ServerAlias www.example.com
            ServerAlias example.com

            DocumentRoot /var/www/html/project/public
            <Directory /var/www/html/project/public>
                    AllowOverride All
                    Allow from All
            </Directory>

            ErrorLog ${APACHE_LOG_DIR}/project.error.log
            CustomLog ${APACHE_LOG_DIR}/project.access.log combined

            SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
            Include /etc/letsencrypt/options-ssl-apache.conf
    </VirtualHost>
</IfModule>

laravel-echo-server.json:

{
        "authHost": "https://example.com",
        "authEndpoint": "/broadcasting/auth",
        "clients": [],
        "database": "redis",
        "databaseConfig": {
                "redis": {},
                "sqlite": {
                        "databasePath": "/database/laravel-echo-server.sqlite"
                }
        },
        "devMode": true,
        "host": null,
        "port": "6001",
        "protocol": "http",
        "socketio": {},
        "secureOptions": 67108864,
        "sslCertPath": "",
        "sslKeyPath": "",
        "sslCertChainPath": "",
        "sslPassphrase": "",
        "subscribers": {
                "http": true,
                "redis": true
        },
        "apiOriginAllow": {
                "allowCors" : true,
                "allowOrigin" : "https://example.com",
                "allowMethods" : "GET, POST",
                "allowHeaders" : "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authori$
        }
}

Dieser Laravel-Echo-Server l?uft über Supervisor:

[program:echo-server]
directory=/var/www/html/project
command=laravel-echo-server start
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/www/html/project/storage/logs/echoserver.log

Ich habe zuerst versucht herauszufinden, ob Port 6001 abgeh?rt wird, es scheint:

> netstat -tulnp | grep 6001
tcp6       0      0 :::6001                 :::*                    LISTEN      1816/laravel-echo-server

Mein app.js:

require('./bootstrap');
require('jquery');
require('jquery-ui');
require('uikit');

import UIkit from 'uikit';
import Icons from 'uikit/dist/js/uikit-icons';
import $ from 'jquery';
import 'jquery-ui/ui/widgets/sortable';

window.$ = window.jQuery = $;
window.UIkit = UIkit;
window.UIkit.use(Icons);

require('./workspace_list');
require('./workspace_add');

import Echo from 'laravel-echo';

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001',
});

Und die Ansicht, wo sich der Socket IO-Client befindet:

<!-- some code ... -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.min.js" integrity="sha512-eVL5Lb9al9FzgR63gDs1MxcDS2wFu3loYAgjIH0+Hg38tCS8Ag62dwKyH+wzDb+QauDpEZjXbMn11blw8cbTJQ==" crossorigin="anonymous"></script>
<script src="{{ mix('js/app.js') }}"></script>

Laravel Echo Server übertr?gt Ereignisse beim Senden eines Vorgangs korrekt, da ich sehe, dass sie über tail -f echoserver.log weitergeleitet werden

Aber ich sehe nie, dass sich ein Benutzer verbindet, sodass niemand Daten von der Frontend-Seite empfangen kann.

Bitte beachten Sie, dass auf meinen VPS über eine Domain mit DNS-Weiterleitungen zugegriffen werden kann. Ich bin mir nicht sicher, ob dies ein Problem darstellt.

Wenn jemand eine Ahnung hat, würde ich gerne herausfinden, was los ist...

P粉029057928
P粉029057928

Antworte allen(1)
P粉269530053

似乎現(xiàn)在可以工作。

我將 laravel-echo-server.json 配置為在 HTTPS 上工作。

這使得事件廣播再次工作,但通道身份驗證不起作用。

所以我改變了 Socket.IO 的導(dǎo)入方式:



這些改變起到了作用。

請注意,刪除頻道默認前綴有很大幫助。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage