2020-07-28

面向業(yè)務(wù),實(shí)戰(zhàn)項(xiàng)目 從頭擼 golang websocket

websocket?一看就會一用就廢

主要原因是操作簡單,但做到性能優(yōu)化,業(yè)務(wù)邏輯層次感強(qiáng),并能很好的用上一些go的特性

還真是對剛轉(zhuǎn)go的同行們不少的考驗(yàn)

我是開始讓員工擼了幾次,,,發(fā)現(xiàn)沒什么本質(zhì)的進(jìn)步,,,自己加個班吧~~~

結(jié)果試了幾次感覺效果也不怎么佳

然后,各種get? git? ?對幾個go基礎(chǔ)問題? 特性花點(diǎn)時間細(xì)究


1.?用什么存websocket 連接?

具說新手最好用sync.Map

但更多的說還是map?讀寫鎖效果更佳,那么。。。麻煩點(diǎn)就麻煩點(diǎn)吧!!

2.要不要順便考慮上grpc?

畢竟。。聊天室是很消耗服務(wù)器的功能,

如果不用分布式開發(fā),單機(jī)能力有限,

尤其是一個直播營銷活動,聊天GG?可以想象有多尷尬。。。

但是如果剛?cè)胧?,無疑提高了開發(fā)邏輯復(fù)雜度,比如如何發(fā)流,如何消息同步,等等。。。

想想還是先用簡單方案,把手頭的項(xiàng)目交了,有時間再加上grpc?畢竟改造的話,要簡單多了

還有一個原因,這樣開發(fā),可以考驗(yàn)一下單機(jī)優(yōu)化

3.用到Golang哪些基礎(chǔ)知識?

1.讀寫鎖? ?sync.RWMutex? ??

? ? 一些全局操作,避免同時操作全局map?避免GG...

? ? 但又要考慮盡可能的不犧牲性能

2."github.com/gorilla/websocket"

????這個不用說了,大家都在用~

3.goroutine?


4.chan go必了解的管道

5.struct?interface 一些使用技巧




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容