nodejs란? 자바스크립트 기반 서버 사이드 스크립트 언어
설치방법은 따로 블로그 하지 않겟다.(매우간단함.)
설치완료 하면 node_modules 라는 폴더가 생성되고 기본 내장 js 모듈 파일들이 존재하며
require 키워드를 통해 어디서든 사용가능 하다.
단 라이브러리를 추가할때는 node_modules 폴더가 존재하는 위치에서 mpn ~~ 을 실행하길 추천한다.
테스트 os 는 윈도우 실제 적용환경은 리눅스(centOS) 였음.
아래 코드는 각각의 OS 에서 정상작동한다.
서버코드.
//websocket 객체 생성 (npm 으로 라이브러리를 추가해야한다.)
var WebSocketServer = require('websocket').server;
//http 객체 생성
var http = require('http');
//nodejs 는 스크립트 오류가 발생시 프로세스가 종료된다. 따라서 예외처리는 필수
try{
//http 객체로부터 서버를 생성한다.
var server = http.createServer(function (req, res) {
//이부분은 알아서~변경
res.writeHead(404);
res.end();
});
//서버포트를 설정한다. 8887번포트 리슨대기 상태
server.listen(8887, function () {
});
//websocket 웹소캣 객체생성자에 위에서 생성한 server 객체를 httpServer
//값에 셋팅 한다.
wsServer = new WebSocketServer({
httpServer: server,
autoAcceptConnections: false
});
//웹소캣 이벤트 정의
wsServer.on('request', function (request) {
//이부분에서 좀 해맷다. CP의 폐해
//accept 함수 첫번째 인자 값에 연결 데이터방식에 대한 정의가 필요한듯.
//null 일경우 모든 client 전송 데이터 연결 허용.
//특정문자열을 입력하여 제한가능 한걸로 보임
var connection = request.accept(null, request.origin);
//메세지 수신 이벤트
connection.on('message', function (message) {
//String 형태로 넘어온데이터 처리
if (message.type === 'utf8') {
//로직
//ex) 헬로라는 문자열을 사용자에게 출력.
connection.send('hello');
//바이너리 데이터 처리
}else if (message.type === 'binary') {
//로직
}else{
//로직
}
});
//사용자가 연결을 끊엇을때 이벤트 처리
connection.on('close', function (reasonCode, description) {
});
});
}catch(exception){
}
nodejs 기본 제공 하는 socket.io 기술을 사용해서 구현도 가능 하지만 클라이언트 단에
관련라이브러리 js 파일을 넣어줘야한다.
위 기본 형태는 서버와 클라이언트 1:1 통신 이며 서버가 클라이언트 들에게 모두 중개 해야하는 입장이라면 추가로직이 필요할것이다.
클라이언트 코드.
var ws = new WebSocket('ws://아이피:포트');
(ssl 적용관련 설명은 따로 올릴예정)
//웹소켓을 기본적으로 하는 미지원 브라우저도 존재한다.
if('WebSocket' in window){
ws.onopen=function(e){
console.log(e);
console.log("onopen");
}
ws.onclose=function(e){
console.log(e);
console.log("onclose");
}
ws.onerror=function(e){
console.log(e);
console.log("onerror");
}
ws.onmessage = function (evt) {
console.log(e);
console.log("onerror");
};
}else{
console.log("WebSocket not supported.");
}
피드 구독하기:
댓글 (Atom)
[oracle]백업및 복구
[oracle]백업및 복구 오라클 덤프 백업및 복구 윈도우 서버 기반 간단 정리 --디렉터리 조회 sqlplus 또는 dbtool 입력시작 SELECT * FROM DBA_DIRECTORIES ; --D:...
-
수십대의 서버에 특정 쉘을 실행한다거나 파일을 수정해야할경우 호스트 입력 아이디 입력 패스워드 입력은 여간 짜증나는일이 아닐수 없다. 이를 한방에 해주는 방법 teraterm 를 설치한다( putty 는 버리자 ) 예를 들면 19...
-
pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...
-
notice_state 란 이름의 체크박스가 있다 가정하고 $("input[name=notice_state]").bind("click",false); 끝.
댓글 없음:
댓글 쓰기