LoginSignup
5

More than 5 years have passed since last update.

Nodejs4+socket.io+redisAdapterでシンプルなNode.jsサーバーを作る

Last updated at Posted at 2015-10-16

環境概要

  • NodeJS v4.2.1
  • Socket.io v1.3.7

Socket.ioがv1.3.7から4に対応して動作確認が取れたので更新しました

作る

今回はシンプルに。そういえばSocket.ioってhttpも扱ってるからhttpサーバーを渡す必要があるんですね。

var http         = require('http');
var socketIo     = require('socket.io');
var redisAdapter = require('socket.io-redis');

var server = http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Node.js server.');
});

var io = socketIo.listen(server);
io.adapter(redisAdapter({host: '127.0.0.1', port: '6379'});

server.listen(8080);

セッション共有

socket.ioも便利になって、セッション共有楽になりましたよね。

var cookieParser = require('cookie-parser')();
var session = require('cookie-session')({ secret: 'secret key'});

io.use(function(socket, next) {
    var req = socket.request;
    var res = {};
    cookieParser(req, res, function(err) {
        if(err) return next(err);
        session(req, res, next);
    });
});

io周り

io.sockets.on('connection', function(socket) {
    // 処理内容
});

// 名前空間切る場合
var ActivityIo = io.of('/activity');
ActivityIo.on('connection', function(socket) {
    // 後は一緒
});

最後に

おーわり。
何か間違えているかもなので、間違えてたら教えていただければ幸いです。

最近になってやっとNode.jsとSocket.io分かるようになってきたので嬉しい

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
5