Socket.ioのNamespace機能を使ってみる

Javascript

Node.jsのExpressとSocket.ioでリアルタイムチャット機能を作る!というのはよくあるサンプルですが、ちょっとNamespacesというのを試してみたかったので書いておきます。

チャットも、サイトに接続している人のすべてにメッセージが届いてほしい、という場合はまれでしょう。
大体は、誰かと誰かのチャットになると思います。
そんな時、サーバーとエンドポイント(クライアントのブラウザ)で、相互にこの相手にしか送らない、ということができるわけです。

Socket.io公式サイト↓
https://socket.io/docs/rooms-and-namespaces/#

超簡単なサンプルですが、サンプルコード書いておきます。

 //サーバー側
 var app = require('express')();
 var server = require('http').Server(app);
 var io = require('socket.io')(server);
 
 server.listen(3000);
 
 var nsp = io.of('/koume');
 nsp.on('connection', function(socket){
  console.log('someone connected');
  
  socket.emit('message', { title: "hogehoge" });
 
 });
 //クライアント側(html内)
  var socket = io('http://localhost:3000/koume');
  socket.on('message', function (data) {
    console.log(data);
    $('#messages').show();
    $('#messages').append($('<li>').append($('<a href="">').text(data.title)));
 
  });
  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です