前言 因為想要試著打造一個線上問答平台,此平台專案採前後分離形式,前端選用Vue框架,後端則是選擇較為熟悉的Node.js+MySQL建立API,而除了基本提問及解答外,問答莫過於最強調即時性了,身為一名發問的學生,一定是最想即時知道自己的問題什麼時候被解決吧😁 在此專案之前,有曾經以Socket.IO技術在全端的架構下打造公開及私人聊天室,於是在此專案建立了基本功能後,便想試著加入Socket.io技術來處理這個即時性的需求,至於Socket.io到底是什麼技術以及如何應用在這樣架構下的專案中,我會在接下來的文章中介紹我於研究整理後對自己應用的經驗做簡單分享,就讓我們繼續看下去吧。 什麼是Socket.IO? Socket.IO技術可以實現後端(伺服器)和前端(客戶端)的通信實時雙向,與以往建立專案通常都是由資料改變而驅動畫面的改變概念有所不同。 從應用角度我認為Socket.IO可以簡單區分成兩個部分,發送事件以及監聽事件,屬於事件驅動的一種技術,如下面提供簡單的Code範例,當前端頁面登入時發送(emit)一個名為”greetingFromClient”的事件並帶有”Hello Backend”字串的資料至後端,後端監聽(on)到此事件後即可將收到的資料(msg)打印(console.log)出,並發送一個名為”greetingFromServer”的事件至前端,前端監聽到事件後及觸發並打印出”Hello,Frontend!”,用這個技術是不是很簡單就讓前後端實現零距離的打招呼呢😆