Purpose
Easy to read and use when not remembering emit commands in Socket IO
List of Emit commands in Socket IO
I will write a make a Socket IO connection and put all emit commands inside to make it easy to visualize.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | io <span class="token punctuation">.</span> <span class="token keyword">on</span> <span class="token punctuation">(</span> <span class="token string">'connect'</span> <span class="token punctuation">,</span> onConnect <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token keyword">function</span> onConnect <span class="token punctuation">(</span> socket <span class="token punctuation">)</span> { <span class="token comment">// Gửi cho tất cả client</span> socket <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'hello'</span> <span class="token punctuation">,</span> <span class="token string">'can you hear me?'</span> <span class="token punctuation">,</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token string">'abc'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho tất cả client ngoại trừ người gửi</span> socket <span class="token punctuation">.</span> broadcast <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'broadcast'</span> <span class="token punctuation">,</span> <span class="token string">'hello friends!'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho tất cả client trong room 'game' ngoại trừ người gửi</span> socket <span class="token punctuation">.</span> <span class="token keyword">to</span> <span class="token punctuation">(</span> <span class="token string">'game'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'nice game'</span> <span class="token punctuation">,</span> <span class="token string">"let's play a game"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho tất cả client trong room 'game1' và room 'game2' ngoại trừ người gửi</span> socket <span class="token punctuation">.</span> <span class="token keyword">to</span> <span class="token punctuation">(</span> <span class="token string">'game1'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token keyword">to</span> <span class="token punctuation">(</span> <span class="token string">'game2'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'nice game'</span> <span class="token punctuation">,</span> <span class="token string">"let's play a game (too)"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho tất cả client trong room 'game' bao gồm cả người gửi</span> io <span class="token punctuation">.</span> <span class="token operator">in</span> <span class="token punctuation">(</span> <span class="token string">'game'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'big-announcement'</span> <span class="token punctuation">,</span> <span class="token string">'the game will start soon'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho tất cả client trong namespace 'myNamespace', bao gồm cả người gửi</span> io <span class="token punctuation">.</span> <span class="token keyword">of</span> <span class="token punctuation">(</span> <span class="token string">'myNamespace'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'bigger-announcement'</span> <span class="token punctuation">,</span> <span class="token string">'the tournament will start soon'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi cho room 'room' trong namespace 'myNamespace', bao gồm cả người gửi</span> io <span class="token punctuation">.</span> <span class="token keyword">of</span> <span class="token punctuation">(</span> <span class="token string">'myNamespace'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> <span class="token keyword">to</span> <span class="token punctuation">(</span> <span class="token string">'room'</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'event'</span> <span class="token punctuation">,</span> <span class="token string">'message'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi tin nhắn riêng cho socket đó qua socketId</span> io <span class="token punctuation">.</span> <span class="token keyword">to</span> <span class="token punctuation">(</span> <span class="token punctuation">`</span> ${socketId} <span class="token punctuation">`</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'hey'</span> <span class="token punctuation">,</span> <span class="token string">'I just met you'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi không đính kèm file nén</span> socket <span class="token punctuation">.</span> compress <span class="token punctuation">(</span> <span class="token boolean">false</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'uncompressed'</span> <span class="token punctuation">,</span> <span class="token string">"that's rough"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Việc gửi tin nhắn này cần sự chấp nhận từ client thì mới có thể đến được client</span> socket <span class="token punctuation">.</span> volatile <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'maybe'</span> <span class="token punctuation">,</span> <span class="token string">'do you really need it?'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi dữ liệu liên quan đến hệ nhị phân</span> socket <span class="token punctuation">.</span> <span class="token keyword">binary</span> <span class="token punctuation">(</span> <span class="token boolean">false</span> <span class="token punctuation">)</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'what'</span> <span class="token punctuation">,</span> <span class="token string">'I have no binaries!'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi dữ liệu cho tất cả client sử dụng node</span> io <span class="token punctuation">.</span> <span class="token keyword">local</span> <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'hi'</span> <span class="token punctuation">,</span> <span class="token string">'my lovely babies'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token comment">// Gửi đến tất cả client kết nối đến</span> io <span class="token punctuation">.</span> emit <span class="token punctuation">(</span> <span class="token string">'an event sent to all connected clients'</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> } <span class="token punctuation">;</span> |
Note
socket.to(socket.id).emit()
will fail. This error is common when you want to send private messages. If used like this will understand socket.id is a room, not a socket.I will use io.to (
${socketId}
) .emit (‘hey’, ‘I just met you’); to send a private message.- The following event names are not allowed:
- error
- connect
- disconnect
- disconnecting
- newListener
- removeListener
- ping
- pong
- After server disconnected or restart, the conection will be released. That means sending private messages via socket.id will have to follow the new socket.id the connection created.
Epilogue
These are all Emit commands in Socket IO that everyone who used socketio can save on the note on the device to be able to use. Good luck to everyone .
Reference link: https://socket.io/docs/emit-cheatsheet/