記錄一下這兩天的成果,這兩天是研究了下nodeJs做小程序后臺(tái)的搭建。
WebSocket
小程序WebSocket的服務(wù)端其實(shí)并不難搭建,整個(gè)過(guò)程不難實(shí)現(xiàn),跟著做就可以了。(為此還特意裝了虛擬機(jī)、ubuntu,在共享文件夾和雙向剪切板遇到了阻礙。。)
最讓我高興的是收獲了文章中提到的為什么要去搭建websocket而不是使用nodejs的socket.io服務(wù)
忍不住要引用一下:(原文:用nodejs快速實(shí)現(xiàn)微信小程序的websocket服務(wù)端)
微信小程序?qū)Φ谌椒?wù)端的網(wǎng)絡(luò)通信方式支持https和Websocket。WebSocket是HTML5開(kāi)始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。為了解決HTTP協(xié)議效率低下的問(wèn)題,HTML5定義了WebSocket協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊。WebSocket在數(shù)據(jù)傳輸?shù)姆€(wěn)定性和數(shù)據(jù)傳輸量的大小方面,具有很大的性能優(yōu)勢(shì)。有不少公司將nodejs的socket.io作為websocket的解決方案,很遺憾的是socket.io是對(duì)websocket的封裝,并不支持html5原始的websocket協(xié)議,微信小程序使用的websocket卻是接近于html5原始websocket協(xié)議,socket.io居然沒(méi)有用武之地了。當(dāng)然情況也沒(méi)有慘到需要你自己一步一步去實(shí)現(xiàn)websocket服務(wù)端,我們的大node有很多websocket庫(kù),ws就是其中一個(gè),號(hào)稱(chēng)最輕量級(jí),最快。
MySQL
在nodejs的文檔中找到連接mysql的參考文檔,因?yàn)槠渲杏杏玫?"npm install mysql"命令,使得我一再神奇地誤以為會(huì)自動(dòng)安裝mysql數(shù)據(jù)庫(kù)。
執(zhí)行文件后出現(xiàn)報(bào)錯(cuò)信息 Errno::ECONNREFUSED
找了一下帖子,很多說(shuō)賬號(hào)密碼有誤導(dǎo)致...
正郁悶時(shí),突然想起自己剛剛理所當(dāng)然地認(rèn)為那個(gè)install命令是安裝數(shù)據(jù)庫(kù)的,可是并沒(méi)有要我輸入賬號(hào)密碼什么的。
于是冷靜地思考下,install 的應(yīng)該是封裝好的連接數(shù)據(jù)庫(kù)的js庫(kù),而這時(shí)候,我缺少的應(yīng)該是數(shù)據(jù)庫(kù)!
馬上download了MySQL,問(wèn)題沒(méi)了。
成功實(shí)現(xiàn)了websocket 和 數(shù)據(jù)庫(kù)的連接,如果有時(shí)間,想把整個(gè)流程完善成一個(gè)聊天的demo。