面向業(yè)務,實戰(zhàn)項目 從頭擼 golang websocket
websocket?一看就會一用就廢
主要原因是操作簡單,但做到性能優(yōu)化,業(yè)務邏輯層次感強,并能很好的用上一些go的特性
還真是對剛轉go的同行們不少的考驗
我是開始讓員工擼了幾次,,,發(fā)現(xiàn)沒什么本質的進步,,,自己加個班吧~~~
結果試了幾次感覺效果也不怎么佳
然后,各種get? git? ?對幾個go基礎問題? 特性花點時間細究
1.?用什么存websocket 連接?
具說新手最好用sync.Map
但更多的說還是map?讀寫鎖效果更佳,那么。。。麻煩點就麻煩點吧??!
2.要不要順便考慮上grpc?
畢竟。。聊天室是很消耗服務器的功能,
如果不用分布式開發(fā),單機能力有限,
尤其是一個直播營銷活動,聊天GG?可以想象有多尷尬。。。
但是如果剛入手,無疑提高了開發(fā)邏輯復雜度,比如如何發(fā)流,如何消息同步,等等。。。
想想還是先用簡單方案,把手頭的項目交了,有時間再加上grpc?畢竟改造的話,要簡單多了
還有一個原因,這樣開發(fā),可以考驗一下單機優(yōu)化
3.用到Golang哪些基礎知識?
1.讀寫鎖? ?sync.RWMutex? ??
? ? 一些全局操作,避免同時操作全局map?避免GG...
? ? 但又要考慮盡可能的不犧牲性能
2."github.com/gorilla/websocket"
????這個不用說了,大家都在用~
3.goroutine?
4.chan go必了解的管道
5.struct?interface 一些使用技巧