0
我有節點服務器在ec2實例上運行。當用戶執行任何操作時,我正在發送一個事件。此套接字是否發出阻塞服務器I/O操作?Socket IO發送服務器阻塞
例如 - 我有1萬個用戶在1時刻連接,並且一次必須向所有連接的用戶發送消息,這是否會阻止我的網絡I/O進行其他操作?
我有節點服務器在ec2實例上運行。當用戶執行任何操作時,我正在發送一個事件。此套接字是否發出阻塞服務器I/O操作?Socket IO發送服務器阻塞
例如 - 我有1萬個用戶在1時刻連接,並且一次必須向所有連接的用戶發送消息,這是否會阻止我的網絡I/O進行其他操作?
當然。 Nodejs單線程。
你可以顯示代碼,或者你正在談論的最小代表性?您可能想要將其封裝在Promise.each或Promise.all等Promise調度程序中,以避免在大量調用中干擾您的進程。 – tadman
我只是發出這樣的事情io.emit(emitMatchLobbyID,{data:'update'});但是我有大約10,000個用戶連接到正在監聽的系統。那麼它會阻止我在服務器上的其他操作? –
10,000次通話需要多長時間?正如Sergey所說的,Node.js是單線程的,所以除非你把它分成更小的塊,否則你會堵塞你的Node進程。 – tadman