鍍金池/ 問答/PHP  HTML/ 今天面試PHP遇到的問題,有人能給解答一下嗎?

今天面試PHP遇到的問題,有人能給解答一下嗎?

今天面試,遇到個場景問題,說兩個人去吃飯,二維碼掃一掃點單,他們倆一同掃出一個菜單頁面,兩個人的點單行為雙方都能看到,并且相互影響,點單結束后一個人確認,兩個人的菜單同時合并提交,請問,以上用了哪些技術。
有人能知道這道題的答案嗎,剛工作一年的菜鳥,今天被問的一臉懵逼。

回答
編輯回答
挽歌

請問,以上用了哪些技術

這里即沒有限定是瀏覽器環(huán)境,也沒有限定是 HTTP 協(xié)議。
所以,最簡單的處理方式,就是客戶端直接創(chuàng)建 2 個連接,以 RPC 方式,一個連接主動,一個連接被動。
沒有任何“技術”,最普通,最基本的網(wǎng)絡編程知識。

2018年6月5日 18:41
編輯回答
情殺

ajax+php

使用過二維火,
一張桌子一個id,二維碼就是一個連接,比如http://www.aaa.com/?id=1
掃描二維碼就相當于打開一個網(wǎng)頁。

點擊一個菜品加入購物車,就是用ajax提交菜品id,

當時使用的時候就測試過,我把一個菜品加入購物車,另一個掃描的朋友不會顯示菜品已加入購物車,除非刷新頁面
所以應該沒有用到websocket,消息隊列這種高級的東西。

只是刷新頁面的時候后端讀取購物車菜品,并顯示頁面而已。

所以二維碼點單看上去很高級,其實很簡單

2017年8月21日 22:49
編輯回答
忠妾

AMQP相關

2017年6月16日 03:27
編輯回答
選擇

websocket

2017年4月27日 09:37
編輯回答
挽青絲

一種思路:

使用websocket進行通信,可以類比聊天室。

一個二維碼(或者一個桌的二維碼)可以通過參數(shù)標識識別為同一個房間,兩個人都在點單,每個人點單都會互相觸發(fā)消息,將點單結果羅列。每個人都可以對點單的內容進行各種操作(操作同樣能夠通過websocket消息觸發(fā))。

這樣就是實時的,最后一個人確認下單的列表,提交即可。(這個過程會有一些一些細節(jié),比如一個人點了一個菜,這個人就不能再點)。

如果不用websocket,可以使用 ajax + SSE 一樣的效果。這種問題問的很開放,用到了哪些技術,隨便扯就行。

2018年7月6日 23:47
編輯回答
孤毒

使用redis的發(fā)布與訂閱也是一種方案,顧客作為相應桌子的發(fā)布方,服務器訂閱每一個桌子的消息,樓上的websocket的方案更好吧

2018年4月4日 13:16
編輯回答
莫小染

我感覺要用到websocket,貌似只知道websocket能在自己的手機頁面看到進入這個頁面(房間)其他人操作,相互影響通過程序處理,不知道還考了什么

2017年6月28日 11:03
編輯回答
呆萌傻

數(shù)據(jù)存儲在服務器,處理了同樣的數(shù)據(jù)

2018年2月17日 07:03
編輯回答
失心人

用了Ajax異步 或者用swoole,還要redis或者memcached免得數(shù)據(jù)庫壓力過大,

2017年4月23日 14:31
編輯回答
孤巷

這個過程應該是并發(fā)執(zhí)行的啊

2018年2月16日 19:28