人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      樂道系統(tǒng)FAQ      Laravel構(gòu)建即時(shí)應(yīng)用的一種實(shí)現(xiàn)方法詳解

Laravel構(gòu)建即時(shí)應(yīng)用的一種實(shí)現(xiàn)方法詳解

標(biāo)簽: 發(fā)布日期:2017-08-31 00:00:00 246

即時(shí)交互的應(yīng)用

大家應(yīng)該都有所體會(huì),在現(xiàn)代的 Web 應(yīng)用中很多場(chǎng)景都需要運(yùn)用到即時(shí)通訊,比如說最常見的支付回調(diào),與三方登錄。這些業(yè)務(wù)場(chǎng)景都基本需要遵循以下流程:

  • 客戶端觸發(fā)相關(guān)業(yè)務(wù),并產(chǎn)生第三方應(yīng)用的操作(比如支付)
  • 客戶端等待服務(wù)端響應(yīng)結(jié)果(用戶完成第三方應(yīng)用的操作)
  • 第三方應(yīng)用通知服務(wù)端處理結(jié)果(支付完成)
  • 服務(wù)端通知客戶端處理結(jié)果
  • 客戶端依據(jù)結(jié)果做出反饋 (跳轉(zhuǎn)到支付成功頁(yè)面)

在過去,為了實(shí)現(xiàn)這種即時(shí)通訊,能讓客戶端正確響應(yīng)處理結(jié)果,最為常用的技術(shù)就是輪詢,因?yàn)?HTTP 協(xié)議的單向性,客戶端只能一遍一遍的主動(dòng)詢問服務(wù)端的處理結(jié)果。這種方式有顯見的缺陷,占用服務(wù)端資源不說,還不能實(shí)時(shí)獲得服務(wù)端處理結(jié)果。

現(xiàn)在,我們可以使用 WebSocket 協(xié)議來處理實(shí)時(shí)交互,它是一種雙向協(xié)議,允許服務(wù)端主動(dòng)推送信息到客戶端。本篇我們將借助 Laravel 強(qiáng)大的事件系統(tǒng)來構(gòu)建實(shí)時(shí)的交互。你將需要用到以下知識(shí):

  • Laravel Event
  • Redis
  • Socket.io
  • Node.js

Redis

在開始之前,我們需要開啟一個(gè) redis 服務(wù),并在 Laravel 應(yīng)用中進(jìn)行配置啟用,因?yàn)樵谡麄€(gè)流程中,我們需要借助 redis 的訂閱和發(fā)布機(jī)制來實(shí)現(xiàn)即時(shí)通訊。

Redis 是一個(gè)開源高效的鍵值對(duì)存儲(chǔ)系統(tǒng)。它通常作為一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器來存儲(chǔ)鍵值對(duì),它可以支持字符串,散列,列表,集合和有序結(jié)合。在 Laravel 中使用 Redis 你需用通過 Composer 來安裝 predis/predis 包文件。

配置

Redis 在應(yīng)用中的配置文件存儲(chǔ)在 config/database.php,在這個(gè)文件中,你可以看到一個(gè)包含了 Redis 服務(wù)信息的 redis 數(shù)組:

'redis' => [
 'cluster' => false,

 'default' => [
 'host' => '127.0.0.1',
 'port' => 6379,
 'database' => 0,
 ],
]