繁体   English   中英

使用Laravel Echo,laravel-echo-server和socket.io进行广播无法正常工作

[英]Broadcasting with Laravel Echo, laravel-echo-server and socket.io is not working

我已经使用自己的实现成功地使用Laravel设置了websockets,但是经过许多小时的尝试并阅读了我能找到的所有文档后,我确实需要进一步的帮助。

"laravel-echo": "^1.5.2",
"socket.io-client": "^2.2.0",

这是我的.env文件的详细信息

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

laravel回波-server.json

 "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,

ExampleEvent文件

public function broadcastOn()
    {
        return new Channel('test-event');
    }

    public function broadcastWith(){
        return [
            'data' => 'key'
        ];
    }

我的Bootstrap.js

window.Echo.channel('test-event')
    .listen('ExampleEvent', (e) => {
        console.log(e);
    });

实施时

Laravel回波服务器:

[10:03:50 PM]-F07Nv9alc-Bsh3LEAAAB加入频道:测试事件[10:04:16 PM]-F07Nv9alc-Bsh3LEAAAB左侧频道:测试事件(运输关闭)频道:测试事件事件:App \\ Events \\ ExampleEvent

Redis的:

1548349380.228566 [0 127.0.0.1:53929]“ EVAL”“-将第一个作业从队列中弹出... \\ n本地作业= redis.call('lpop',KEYS [1])\\ n本地保留= false \\ n \\ nif(job〜= false)然后\\ n-增加尝试次数并将作业放在保留队列中... \\ n reserved = cjson.decode(job)\\ n reserved ['attempts'] = reserved ['attempts '] + 1 \\ n保留= cjson.encode(保留)\\ n redis.call('zadd',KEYS [2],ARGV [1],保留)\\ nend \\ n \\ n返回{job,保留}“” 2 “”队列:默认“”队列:默认:保留“” 1548349470“ 1548349380.228773 [0 lua]” lpop“”队列:默认“

该声明正在不断重复。

而且浏览器中没有输出

您需要在laravel-echo-config.json文件中设置redis配置,以便它知道从哪里"ask for messages" ,例如:

"databaseConfig": {
    "redis": {
        "host": "http://127.0.0.1"
        "port": "6379"
    },
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM