반응형
리눅스에 nodejs를 설치한다. 버전은 알아서 설치한다. 나는 8.x 이다..
그리고 npm을 이용해서 socket.io를 설치한다.
npm install socket.io
소켓이 작동할 수 있도록 파일을 생성한다.
socket.js
var http = require('http');
var fs = require('fs');
var socketio = require('socket.io');
var server = http.createServer(function(req, res){
fs.readFile('index.html', 'utf8', function(err, data){
res.writeHead(200, {'Content-Type':'text/html'});
res.end(data);
});
}).listen(8888, function(){
console.log('Running ~~~~~~~~~~~~');
});
var io = socketio(server);
io.sockets.on('connection', function(socket){
socket.on('sMsg', function(data){
console.log(data);
io.sockets.emit('rMsg', data);
});
});
위 소스를 보면 index.html 이 필요하다. socket.js와 index.html은 같은 경로에 있는게 좋다..
index.html
<!DOCTYPE>
<html>
<head>
<style>
#container {
width: 400px;
border: 1px dotted #000;
padding: 10px;
height: 328px;
}
#chatBox {
border: 1px solid #000;
width: 400px;
height: 300px;
margin-bottom: 5px;
}
#chat li {
padding: 5px 0px;
}
#name {
width: 78px;
}
#msg {
width: 256px;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.5/socket.io.min.js"></script>
<script type="text/javascript">
window.onload = function(){
var socket = io.connect();
if(socket != null && socket != undefined){
var welcome = document.createElement('li');
welcome.innerHTML = '<system> Start Chatting';
document.getElementById('chat').appendChild(welcome);
socket.on('rMsg', function(data){
var li = document.createElement('li');
li.innerHTML = data.name + ' : ' + data.msg;
document.getElementById('chat').appendChild(li);
});
document.getElementById('submit').onclick = function(){
var val = document.getElementById('msg').value;
var name = document.getElementById('name').value;
socket.emit('sMsg', {
name : name,
msg : val
});
document.getElementById('msg').value = '';
};
}
};
</script>
</head>
<body>
<div id="container">
<div id="chatBox">
<ul id="chat"></ul>
</div>
<input type="text" id="name"/>
<input type="text" id="msg"/>
<button id="submit">Chat</button>
</div>
</body>
</html>
이렇게하고 리눅스 콘솔에서
node socket.js
실행 후
localhost:8888
로 접속해보면 된다..
창을 여러개 띄워서 채팅을 해보자....
반응형
'nodejs' 카테고리의 다른 글
node를 이용해 kafka 서버에 메세지 등록하고 메세지 읽기 (2) | 2019.03.26 |
---|---|
node와 web3를 이용한 이더 전송과 트랜잭션 확인 (0) | 2019.03.15 |
node와 web3를 이용해 블럭넘버와 계정 조회하기 (0) | 2019.03.15 |
npm으로 web3 설치할때 만나는 에러 해결 (0) | 2019.03.15 |
nodejs를 이용한 채팅 - 방만들기+디비에 채팅내용저장하기 (1) | 2019.01.24 |