在編寫項目過程中,需要用到實時數據的推送需求, 所以首先想到了NodeJS的websocket模塊
在網上找了一個聊天室的例子 然后將其改為自己需求的推送
其中遇到的問題
返回數據問題 : 由於對NodeJS不是非常熟悉 所以采用偷懶將數據處理等放在PHP后端處理 然后使用NodeJS進行請求 然后在這個過程中發現請求回的數據是ArrayBuffer 然后百度發現是因為需要JSON格式轉換 所以又找到了JSON.parse()函數進行轉換,剛剛開始的時候是非常好用的 但是后來發現了問題就是在數據量非常大的時候發現了 JSON.parse 報錯誤
Unexpected end of JSON input
經過各種尋找之后發現是 在請求的時候
req.on('data',function(data){ datas = JSON.parse(data) })
這個過程是會分成兩次進行執行 將返回的數據切割成等同大小的數據了 所以會出現解析問題 最后采用的解決辦法
let datas = ''; req.on('data',function(data){ datas += data; }) req.on('end',function(){ datas1 = JSON.parse(datas); })
這樣改過之后發現就可以了
最后總結: 問題原因還是在於本人對NodeJS 不夠了解 畢竟不是專業的 所以記錄下來 希望以后不會忘記 計算忘記也可以找到解決辦法