https://www.bilibili.com/video/BV1KN411n7WD/
看到一半的時候就會想到以下的問題:
初學websocket有感-待研究
既然每一個endPoint都是對應著一個服務器和客戶端瀏覽器的連接對象,那么就是說要創建很多個endPoint對象咯。
一、是否回將創建的這么多endPoint對象信息都存儲在后端服務器電腦的內存里面?
- 如果是,那么創建這么多對象會不會導致內存不足的問題?
- 如果不是,那么存儲在什么地方
二、創建這么多endPoint對象是必須的嗎?為什么?能不能優化,也就是創建少一點endPoint對象以減少內存存儲的大小以達到內存效率最大化?創建這么多endPoint對象會不會有些是多余的(是不是不需要創建這么多endPoint對象)?
思考的方向:
http和websocket的區別,還需要再深刻一下,再度深刻地去探索研究一下
三、既然要創建不止一個endPoint對象,那么必然會有代碼體現的地方?是在ChatEndpoint
體現嗎?到底哪里可以體現呢?是ChatEndpoint
這個類體現嗎?ChatEndpoint
是在那里創建了一個endPoint對象呢?如果僅僅看被Component
注解修飾的ChatEndpoint
,那么ChatEndpoint
對象應該是被spring管理的單例對象才是呀?單例也就是1個呀?哪來這么多個entpoint?那么多個endPoint對象在哪里可以體現呢?(猜一下應該是ServerEndpoint
注解等其他注解)
@ServerEndpoint(value = "/chat",configurator = GetHttpSessionConfig.class)
@Component
public class ChatEndpoint {
看完后就會知道視頻的是簡單化了,也就是問題一可以放數據庫里面的,但是視頻為了重點講websocket而把數據庫的忽略了,另外也講所有的上線的用戶當作好友了。其他的問題還需要繼續深入才行。
https://gitee.com/flowers-bloom-is-the-sea/websocket-demo