facebook twitter hatena line email

Javascript/nodejs/socket.io/実用サンプル

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

サーバ側

  • app.js
var port = 8001;
var socketio = require('socket.io').listen(port);
// 接続受信
socketio.on('connection', function (client) {
  console.log("self.sid=" + client.id);
  // 全ユーザーに接続情報送信
  client.broadcast.emit("connection_other", {sid: client.id});
  // 切断時
  client.on('disconnect', function() {
    // 全ユーザーに切断情報送信
    client.broadcast.emit("disconnect_other", {sid: client.id});
  });
  // message受信
  client.on('message', function(data) {
    console.log(data);
    // 全ユーザに送信
    client.broadcast.emit('message', data);
  });
});
console.log("port:" + port);

require.jsを使ったクライアントサンプル

  • main.js
require(['https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 'socket.io'], function() {
  var socketio = io.connect('http://localhost:8001');
  // 自分接続受信
  socketio.on('connect', function() {
    console.log("sid:" + socketio.socket.sessionid);
    // 入室メッセージ送信
    socketio.emit('message', socketio.socket.sessionid + ' join');
  });
  // 別ユーザの接続情報受信
  socketio.on('connection_other', function(user) {
    console.log('connection_other:user.sid=' + user.sid);
  });
  // 別ユーザの切断情報受信
  socketio.on('disconnect_other', function(user) {
    console.log('disconnect_other:user.sid=' + user.sid);
  });
  // メッセージ受信
  socketio.on('message', function(str) {
    console.log(str);
  });
});