Try   HackMD

用訂便當理解什麼是 WebSocket

阿明與他爆紅的山寨代訂便當服務

阿明是小明的死黨,但自從小明有了女朋友後就再也不跟他一起翹課去打咖,他也覺得自己不應該再這樣渾渾噩噩下去,應該要幹點什麼大事。

正巧最近學校由千千經營的傳紙條代訂便當服務,做得有聲有色,正所謂「模仿是學習的一個過程」,沒什麼創意的阿明決定當起千千的競業,自己搞一套相同的便當代訂服務叫做 A-Ming Eat。

但你可能會問既然千千已經經營得有聲有色,同學們幹嘛要找阿明代訂呢?阿明也在無數個失眠的夜晚中,問自己這個問題,思考著自己有什麼優勢,終於在某一個夜晚,他想起了他那個有錢的老爸。

沒錯,他向富爸爸要了一大筆錢,至於是多少很多不要問。擁有這筆錢的他就有本錢可以打價格戰,雖然一樣是做便當代訂服務,但透過他這邊訂便當的同學,不僅不用收 5~10 元不等的服務費,還能享有訂購便當買一送一的破天荒優惠!

這個消息很快的就傳遍了整個校園,大家都呷好逗相報推薦 A-Ming Eat 這個傳紙條訂便當服務。

原本的流程也非常陽春,一樣是透過傳紙條的模式,傳給阿明並說明要訂什麼便當,阿明收到之後就會回傳訂便當的結果是否成功以及消費明細。

<補充舊有的 HTTP request 流程圖>

A-Ming Eat 的困境

一夕爆紅的 A-Ming Eat 沒有讓阿明沈浸在成名的快樂太久,因為有越多人使用這個服務,就代表著他那筆錢燒得越快,若是除了原有的價格戰之外沒有推出更有優勢的商業模式,那很快的他就得從便當代訂的戰場中退場。

錢快燒完的阿明,開始認真的做起顧客滿意度問卷調查,調查這個 A-Ming Eat 使用體驗如何,他的目標是做出一個「有溫度」的便當代訂平台,這樣當他到時候收網時,啊不是,是當他哪天不再推出買一送一優惠時,仍可以穩定的繼續經營下去。

在眾多的問卷中他注意到了一個有趣的建議:

我傳紙條的原則是「X你X傳爆」,因為我是個急性子的人,我會想要即時知道我的便當到底送到了沒,但為了要知道這件事,每隔五分鐘我就得要重傳一張紙條詢問便當目前的狀態。希望阿明可以改善這個狀況,就算要付服務費我也會用!

雖然這筆問卷是匿名的,但從字裡行間他隱約可以感受到這是他曾經的死黨小明那直率不拘的語氣,而不愧是他的好朋友,他其實也注意到這個問題很久了。

常常會有急性子的使用者傳來一些紙條只是為了要詢問便當送到了沒:

<補 polling 流程圖>

這樣不斷的一來一往不是個有效率的方法,也很浪費紙條,又在幾個失眠的夜晚之後,他想到了,這次不是靠爸,是由他這邊,因此,他決定改良原本的傳紙條規則,建立一個可以。