socket.js 코드작성
참고블로그
https://www.zerocho.com/category/NodeJS/post/57edfcf481d46f0015d3f0cd
#서버 소스 작성
var io = require('socket.io').listen(3303);
console.log('socket server run!!');
io.sockets.on('connection', function(socket){
socket.on('call', function(data){ //응답
console.log(data);
socket.emit('answer', 'php hi!'); //요청
});
});
====================================================================
#클라이언트 소스 작성
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script>
var socket = io.connect('http://localhost:3303', { transports: ['websocket'] });
socket.emit('call', 'hi nodejs!'); //요청
socket.on('answer', function(data){ //응
$('#answer').text(data);
});
</script>
<div id="answer"></div>
일단 여기까지 하고 서버쪽의 소스 프로그램을 실행해본다.
D:\nodejs\js>node socket.js
socket server run!!
위와같이 실행된다.
그리고 실제로 3303 포트가 열려있는지 확인해보자.
C:\Users\wook>netstat -an | find "3303"
TCP 0.0.0.0:3303 0.0.0.0:0 LISTENING
TCP [::]:3303 [::]:0 LISTENING
일단 정상적으로 포트가 열려있는것까지 확인했다.
==============================================================================================================
위 클라이언트 소스중에 transports : ['websocket'] 부분이 없으면, 웹소켓이 아니라 폴링으로 작동한다 -_-; 거기다가 실제로 작동도 하지 않는다.
구글에서 검색하다가 알게된 주옥같은 부분이다.
실제로 클라이언트에서 연결되면 netstat 클라이언트 접속 부분도 확인이 된다.
C:\Users\wook>netstat -an | find "3303"
TCP 0.0.0.0:3303 0.0.0.0:0 LISTENING
TCP [::]:3303 [::]:0 LISTENING
TCP [::1]:3303 [::1]:14478 ESTABLISHED
TCP [::1]:14478 [::1]:3303 ESTABLISHED