socket.ioを使う場合のデータの渡し方
socket.ioを使った処理を書くときに困るのが、クライアント/サーバー間のデータのやり取りが分かりにくくなること。
scrumblrのソースコードを読んでみると、以下の方法をとっていたのでメモ。
クライアント側
処理のカタマリにして、データを送る
function sendAction(a, d) { var message = { action: a, data: d } socket.send ( message ); }
例えば、ユーザー登録の場合
userdata = {userId: userId, name: name};
sendAction('addUser',userdata);
のような感じ
サーバー側
サーバー側はaction名に応じて、switchを使って処理を決める。
以下は、addUserを受け取る処理の例
client.on('message', function( message ){ if (!message.action) return; switch (message.action){ case 'addUser': addUser(message.data); break; } });