nodejsでwebsocket †webルートとなるディレクトリを作成 †mkdir socket_io_work cd socket_io_work sockletIOインストール †npm install socket.io サーバ処理 †server.js var fs = require("fs");
var server = require("http").createServer(function(req, res) {
res.writeHead(200, {"Content-Type":"text/html"});
var output = fs.readFileSync("./index.html", "utf-8");
res.end(output);
}).listen(8080);
var io = socketio.listen(server);
io.sockets.on('connection', function(socket) {
socket.on('client_to_server', function(data) {
io.sockets.emit('server_to_client', {value : data.value});
});
});
クライアント処理 †index.html <!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>websocket-chat</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="/socket.io/socket.io.js"></script> <!-- 実際にはこんなファイルはないが socket.io が動的に生成する -->
</head>
<body>
<div class="container">
<h1>WebSocket-Chat</h1>
<form id="form1" class="form-inline">
<div class="form-group">
<label for="msgForm">メッセージ:</label>
<input type="text" class="form-control" id="msgForm">
</div>
<button type="submit" class="btn btn-primary">送信</button>
</form>
<div id="chatLogs"></div>
</div>
<script type="text/javascript">
var socket = io.connect();
socket.on("server_to_client", function(data){appendMsg(data.value)});
function appendMsg(text) {
$("#chatLogs").append("<div>" + text + "</div>");
}
$("form").submit(function(e){
var message = $("#msgForm").val();
$("#msgForm").val('');
socket.emit("client_to_server", {value : message});
e.preventDefault();
});
</script>
</body>
</html>
起動 †node server.js |