nodejsでchatをつくってみた

スポンサードリンク

まずは準備
socket.ioをインストールする

[root@localhost app2.chat]# npm install socket.io --save

ついでにfsもインストールしておく

[root@localhost app2.chat]# npm install fs --save

app.jsの編集

var http = require('http');
var socketio = require('socket.io');
var fs = require('fs');

//サーバを立ち上げる
var server = http.createServer(function(req, res) {
  res.writeHead(200, {"Content-Type": "text/html"});
  var output = fs.readFileSync('./index.html', 'utf-8');
  res.end(output);
});
server.listen(3000, function() {
  console.log("running..");
});

//サーバとソケットを紐付ける
var io = socketio.listen(server);

//イベント受付処理
io.sockets.on("connection", function(socket) {

  socket.on("C_to_S_message", function(data) {
    //サーバからイベントを発火させる
    io.sockets.emit("S_to_C_message", {value:data.value});
  });
});

index.htmlの編集

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
$(function() {
  var s = io.connect();
  //サーバーから受け取るイベント
  s.on("S_to_C_message", function(data) {
    $("#message").append("<li>" + data.value + "</li>");
  });
  //クライアントからサーバーへイベント送信
  $(document).on("click", "#submit", function() {
    var msg = $("#text").val();
    s.emit("C_to_S_message", {value:msg});
});
</script>
</head>
<body>
<ul id="message"></ul>
<input id="text"><button id="submit">send</button>
</body>
</html>

スポンサードリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする