LoginSignup
11
10

More than 5 years have passed since last update.

node.jsでsocket.io利用のHTTPサーバーを立てる簡単な方法

Posted at

HTTP サーバー

node.jsは動的なウェブサービスのフレームワークなので、いわゆる普通のHTTPサーバーとして単に静的コンテンツを提供するためには少しコードを書く必要がある。
node.js上のHTTPサーバーsenchalabs/connectにミドルウェアexpressjs/serve-staticを入れて使うと簡単にできて、拡張もし易い。
作業ディレクトリ下の/wwwをHTTPサーバーで公開するコードは以下のようになる。

server
var listeningPort = 8080;
var uiDir = __dirname + '/www';

var http = require('http');
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic(uiDir));
var server = http.createServer(app);
server.listen(listeningPort);
console.log('Listening on port: ' + listeningPort);

(注意: connect v3からミドルウェアの追加方法が変更されているsenchalabs/connect#middleware)

socket.io

これにSocket.IO v1を組み合わせるのは以下のコードを追加すれば良い。
(注意: socket.io v0.9以前ではインスタンス生成コードが異なる)

server
var io = require('socket.io')(server);

io.on('connection', function (socket) {
    socket.emit("emitEvent", data);
    socket.on("listenEvent", function(data){});
}

クライアント側には以下のコードを入れる。

client
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.emit("emitEvent", data);
socket.on("listenEvent", function(data){});
</script>
11
10
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
11
10