이 기사 예제 Node.js는 참조를위한 즉각적인 커뮤니케이션을위한 웹 채팅 서버를 만듭니다. 특정 내용은 다음과 같습니다
1. Nodejs-websocket을 사용하십시오
Nodejs-websocket은 Node.js를 기반으로 작성된 WebSocket 프로토콜을 구현하는 백엔드 라이브러리입니다.
연결 : https://github.com/sitegui/nodejs-websocket.
(1) 설치
프로젝트 디렉토리에서 NPM을 통해 설치 : NPM Nodejs-Websocket 설치
(2) 서버를 만듭니다
// Nodejs-websocketvar ws = required ( "nodejs-websocket")를 소개합니다. // CreateServer 메서드를 작성하려면 서버를 작성하고 콜백 함수의 Conn은 var server = ws.create (function (conn) {connole.log ( "new connection"); // 텍스트 이벤트를 듣고 텍스트 유형 데이터가 서버에서 수신 될 때마다 트리거됩니다. 텍스트 함수의 매개 변수는 통과 된 conn.on ( ", function", recipted ( "," " + str);}); // 닫기 이벤트를 듣고 Conn.On ("Close ", function (code, rasy) {console.log ("Connection ")}). 듣기 (8888);2. 클라이언트는 WebSocket을 사용합니다
클라이언트의 경우 WebSocket 객체를 인스턴스화해야합니다. ws = new WebSocket ( "ws : // localhost : 5000"); 전달 된 매개 변수는 ws : //+url이며 http 프로토콜 접두사 http : //와 동일합니다. 다음으로, 일부 내장 된 WebSocket 방법을 사용하여 이벤트를 모니터링하고 데이터를 표시 할 수 있습니다.
여기에 각 청취 이벤트를 소개합니다. 서버와 클라이언트가 연결을 설정할 때 오노 펜 트리거; 클라이언트가 서버에서 전송 된 데이터를 수신 할 때 온 메이지 트리거; 클라이언트와 서버 연결이 닫힐 때 onclose 트리거링; 연결 오류가 발생하면 오류가 트리거됩니다.
3. WebSocket + Nodejs를 사용하여 온라인 채팅방을 구현하십시오.
(1) HTML 및 CSS 코드가 생략되었습니다
(2) 클라이언트 JS :
oconnect.onclick = function () {ws = new WebSocket ( 'ws : // localhost : 5000'); ws.onopen = function () {oul.innerhtml+= "<li> 클라이언트 Connected </li>"; } ws.onmessage = function (evt) {oul.innerhtml+= "<li>"+evt.data+"</li>"; } ws.onclose = function () {oul.innerhtml+= "<li> 클라이언트 연결이 끊어졌습니다 </li>"; }; ws.onerror = function (evt) {oul.innerhtml+= "<li>"+evt.data+"</li>"; }; }; osend.onclick = function () {if (ws) {ws.send (oinput.value); }} (3) 서버 측 JS : /*WebSocket은 두 가지 유형의 데이터 전송을 지원합니다. 텍스트 유형과 이진 유형, 이진 데이터가 전송되고 스트림 패턴을 통해 읽습니다.* /var app = require ( 'http'). CreateServer (handler); // 코드를 단순화하려면 서버 생성 특정 코드를 핸들러 함수 var ws = require ( 'nodejs-websocket')에 넣으십시오. var fs = require ( 'fs'); app.listen (8888); 함수 핸들러 (req, res) {// __ dirname 파일이있는 현재 디렉토리를 반환합니다. fs.readfile (__ dirname+'/index.html', function (err, data) {if (err) {res.writehead (500); return res.end ( 'error'); res.writehead (200); res.end (data);} // 위의 단계를 성공적으로 성공적으로 렌더링하는 readfile fs.readfile (__ dirname+'/index.html', function (err, data) {res.writehead (err) {res.writehead (500); res.writehead (res.writehead); 해당 연결 var server = ws.createserver (function (conn) {console.log ( 'new connecton'); // 텍스트 이벤트를 듣고 Conn.on ( "text", function (str) {텍스트가 접수 될 때마다 연결이 닫히면 연결이 닫히면 연결이 Console (Code.on) (CONCONE) (CONTEN.ON) Console.log ( 'Connection Closed')}). // 여기서 리스너는 방금 열린 서버의 포트입니다. 클라이언트는 기능 방송 (서버, MSG)을 처리하기 위해 여기에서 메시지를 보내는 모든 연결된 클라이언트를 포함하는 배열입니다 .Connections.foreach (function (conn) {//connection.sendText 메소드는 고객에게 지정된 컨텐츠를 보내고 문자열로 통과 할 수 있습니다.이 내용의 모든 내용이 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 Wulin.com을 더 지원하기를 바랍니다.