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

时间:2019-01-24 17:08:22

标签: laravel websocket redis

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

sub sqlt_deploy_hook {
   my ($self, $sqlt_table) = @_;

   $sqlt_table->add_index(name => 'table_b_idx_source_id', fields => ['source_id']);
}

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

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

laravel-echo-server.json

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

ExampleEvent文件

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

我的 Bootstrap.js

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

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

实施时

Laravel-echo-server:

  

[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”“-从队列中弹出第一个作业... \ nlocal job = redis.call('lpop',KEYS [1])\ nlocal   保留=假\ n \ nif(作业〜=假)然后\ n-增加   尝试计数并将作业放在保留队列上... \ n保留=   cjson.decode(job)\ n保留['尝试'] =保留['尝试'] +   1 \ n保留= cjson.encode(保留)\ n redis.call('zadd',   KEYS [2],ARGV [1],保留)\ nend \ n \ n返回{job,保留}“” 2“   “队列:默认”“队列:默认:保留”“ 1548349470”   1548349380.228773 [0 lua]“ lpop”“ queues:default”

此声明正在不断重复。

  

此外,浏览器中没有输出

1 个答案:

答案 0 :(得分:0)

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

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