国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

node.js - laravel5.2 broadcaster無(wú)法廣播,且不報(bào)錯(cuò)?

瀏覽:90日期:2024-08-05 08:50:20

問(wèn)題描述

環(huán)境:Mac ,laravel版本 5.2.x ,valet

問(wèn)題描述:

在用laravel配合nodeJS的socket.io做websocket時(shí)出現(xiàn)的錯(cuò)誤。

這是socket的服務(wù)端代碼

var http = require(’http’).Server();var io = require(’socket.io’)(http);var Redis = require(’ioredis’);var redis = new Redis();redis.subscribe(’test-channel’);redis.on(’message’, function (channel, message) { console.log(message); message = JSON.parse(message); io.emit(channel + ’:’ + message.event, message.data);});http.listen(3001, function () { console.log(’Server is running at 3001!’);});

這是route代碼

Route::get(’/test’, function () { $data = [’event’ => ’inbox’,’data’ => [ ’name’ => ’WTF’] ]; Redis::publish(’test-channel’, json_encode($data)); return ’Done’;});

然后訪問(wèn)/test頁(yè)面后,命令行顯示如圖:

node.js - laravel5.2 broadcaster無(wú)法廣播,且不報(bào)錯(cuò)?

前端也收到了數(shù)據(jù),就不展示了,問(wèn)題的關(guān)鍵在于

當(dāng)我將route的代碼改成如下:

Route::get(’/test’, function () { event(new AppEventsTest(’ARE U OK ?’)); return ’Done’;});

然后通過(guò)

php artisan make:event Test

生成的event事件代碼如下:

<?phpnamespace AppEvents;use AppEventsEvent;use IlluminateQueueSerializesModels;use IlluminateContractsBroadcastingShouldBroadcast;class Test extends Event implements ShouldBroadcast{ use SerializesModels; public $name; public function __construct($name) {$this->name = $name; } public function broadcastOn() {return [’test-channel’]; }}

然后訪問(wèn)/test頁(yè)面,命令行無(wú)輸出

在這之前,是配置過(guò)broadcast的driver的

.env文件里

BROADCAST_DRIVER=redis

config的cache也已經(jīng)clear過(guò)了

從使用Redis::publish成功可以看出,laravel和Redis鏈接是成功的,那么問(wèn)題應(yīng)該出在哪里呢?

還請(qǐng)大神指教!

問(wèn)題解答

回答1:

經(jīng)過(guò)重開(kāi)項(xiàng)目,復(fù)制同樣代碼,執(zhí)行正常后發(fā)現(xiàn),是原有項(xiàng)目的QUEUE_DRIVER=redis造成的問(wèn)題,應(yīng)該是隊(duì)列的問(wèn)題。

將QUEUE_DRIVER=redis改成sync即可。

回答2:

謝邀。 大概看了下代碼,好像沒(méi)啥問(wèn)題。不過(guò)有一個(gè)地方你沒(méi)說(shuō)明,是不是隊(duì)列執(zhí)行那里出了問(wèn)題。broadcasting event 會(huì)把 event 放到一個(gè)隊(duì)列里執(zhí)行,是不是你沒(méi)有啟動(dòng)隊(duì)列監(jiān)聽(tīng)。

先嘗試把你event里的 use IlluminateContractsBroadcastingShouldBroadcast; 給后面幾個(gè) Now:變成 use IlluminateContractsBroadcastingShouldBroadcastNow; 然后測(cè)試看能否廣播。

如果可以的話,把 Now 去掉改回去,然后在命令行執(zhí)行 php artisan queue:listen 后再發(fā)廣播

主站蜘蛛池模板: 男人天堂视频网站 | 日本美女视频韩国视频网站免费 | 在线观看国产一区二三区 | 成年人网站在线观看视频 | 日韩久久网 | 国产高清亚洲 | 午夜在线伦理福利视频 | 亚洲欧美日韩国产精品影院 | 欧美成人亚洲 | 国产精品久久久久久久免费大片 | 久草视频福利 | 黄+色+性+人免费 | 国产v精品成人免费视频400条 | 久99久精品视频免费观看v | 国产成人亚洲精品91专区高清 | 久久99国产亚洲高清观看韩国 | 美女视频网站免费播放视 | 免费看操片 | 一级毛片免费在线观看网站 | 99在线国产 | 久久精品国产精品青草色艺 | 国产日韩三级 | 天堂精品高清1区2区3区 | 韩国免费毛片 | 99视频精品在线 | 日本在线亚州精品视频在线 | 美女福利视频午夜在线 | 看中国毛片 | 欧美一级欧美一级在线播放 | 成人中文在线 | 中文字幕在线观看一区二区三区 | 国产一区精品 | 手机看片自拍日韩日韩高清 | 男人干女人逼 | 亚洲成人在线网 | 亚洲午夜成激人情在线影院 | 性欧美另类老妇高清 | 亚洲国产系列 | 玖玖99视频 | 日本在线观看www免费 | 精品国产一区二区三区不卡蜜臂 |