LoginSignup
60
49

More than 3 years have passed since last update.

Socket.io のよく使う関数とか

Last updated at Posted at 2019-08-08

Socket.io

バージョン: 2.2.0
namespacesはデフォルト

サーバ側

送信

const io = require('socket.io')(http);

//全クライアントに送信
io.emit('event', param); 

//'room'ルーム内のクライアントに送信
io.to('room').emit('event', param); 

//特定クライアントに送信
io.to('socetID').emit('event', param);

//送信元以外の全クライアントに送信
io.broadcast.emit('event', param); 

受信

//イベントハンドラを登録
io.on('event', () => {
});

//イベントハンドラを登録 一度のみ
io.once('event', () => {
});

/*connection(webSocket確立時)イベント時
クライアントが接続するたびにイベントハンドラを登録*/
io.on('connection', socket => {
    socket.on('event', () => {
    });
});

//最初のクライアント接続時のみ
io.once('connection', socket => {
    socket.on('event', () => {
    });
});

クライアント情報取得

io.of('/').in('room').clients( error,clients => {
    //'room'ルームのクライアントのソケットIDリスト
    console.log(clients); 

    //'room'ルームのクライアントの数
    console.log(clients.length); 
}); 

ルーム

io.on('connection', socket => {
    //'room'ルームに接続
    socket.join('room');

    //'room'ルームから切断
    socket.leave('room');
    });
});

クライアント側

送信

const io = io();

io.emit('event', param);

受信

io.on('event', param => {
});

追記するかもしないかも

60
49
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
60
49