LoginSignup
54
50

More than 5 years have passed since last update.

socket.io

Posted at

socket.io-client

event.js
listeners(name)
removeAllListeners()
removeListener(name, fn)
addListener(name, fn) = on(name, fn)
once(name, fn)
emit()

Room

Roomsを使えばクライアントを切り分けることができる。

server側でjoin/leave

socket.join('room')
socket.leave('room')

disconnect中にleaveする必要はない。自動的に発生して、空のルームは自動的に消滅する。

emitするには2通りの方法がある。broadcastin
broadcastするとemitを行ったソケット以外の、指定のルームに属するクライアントに送る。

socket.broadcast.to('room').emit('event_name', data)

ルームを指定しなかったら、emitしたソケット以外の全クライアントに送る

socket.broadcast.emit('event_name', data)

指定のルームに属するクライアントに送る

io.sockets.in('room').emit('event_name', data)

全クライアントに送る

io.sockets.emit('event_name', data)

指定のネームスペースとルームにイベントを送る

io.of('namespace').in('room').emit('event_name', data)

全てのルームを取得

io.sockets.manager.rooms

room name は 先頭に / 文字が付く。内部的に使われるだけなのでjoin/leaveで使う必要はない

ルームに属するクライアントの一覧

io.sockets.clients('room')

ルームに属するクライアントの一覧、ネームスペースも指定する場合

io.of('namespace').clients('room')

あるクライアントが属するルーム一覧

io.sockets.manager.roomClients[socket.id]
54
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
50