웹 프론트엔드 JS 튜토리얼 nodejs_node.js에 구현된 간단한 채팅방 기능 공유

nodejs_node.js에 구현된 간단한 채팅방 기능 공유

May 16, 2016 pm 04:28 PM
nodejs 간단한 대화방

오늘은 백그라운드에서 nodejs를 사용하고 클라이언트와 서버 간 통신을 위해 소켓.io를 사용하는 간단한 채팅방을 구현하겠습니다. 이는 비교적 성숙한 웹소켓 프레임워크입니다.

초기작업

1. express를 설치하고 이를 사용하여 source.io 및 정적 페이지를 호스팅합니다. npm install express --save, --save 패키지를 package.json 파일에 추가합니다. 2.socket.io를 설치하고 npm installsocket.io --save 명령을 실행합니다.

서버 코드 작성

socket.io는 초기 연결을 위해 http 프로토콜이 필요하기 때문에 먼저 express를 통해 웹사이트를 호스팅하고 이를 소켓.io 인스턴스에 연결합니다


코드 복사 코드는 다음과 같습니다.
var express = require('express'),
​ io = require('socket.io');
var app = express();

app.use(express.static(__dirname));

var 서버 = app.listen(8888);

var ws = io.listen(서버);

서버 연결 이벤트를 추가합니다. 클라이언트 연결이 성공하면 모든 온라인 사용자에게 알림이 전송됩니다. 사용자가 메시지를 보내면 다른 사용자에게 알림이 전송됩니다.

코드 복사 코드는 다음과 같습니다.
ws.on('연결', 함수(클라이언트){
console.log(' Client.on('join', function(msg){
             // 중복이 있는지 확인
           if(checkNickname(msg)){
                client.emit('nickname', '닉네임이 중복되었습니다!');
         }그 외{
Client.nickname = msg;
                 ws.sockets.emit('announcement', 'System', msg '채팅방에 참여했습니다!');
}
});
// 메시지 보내기 듣기
Client.on('send.message', function(msg){
Client.broadcast.emit('send.message',client.nickname, msg);
});
// 연결이 끊어지면 다른 사용자에게 알립니다.
Client.on('disconnect', function(){
If(클라이언트.닉네임){
Client.broadcast.emit('send.message','System', client.nickname '채팅방에서 나가세요!');
}
})

})


클라이언트는 닉네임으로 식별되므로 서버에서는 중복된 닉네임을 감지하는 기능이 필요합니다

//닉네임이 반복되는지 확인
var checkNickname = 함수(이름){
for(ws.sockets.sockets의 var k){
If(ws.sockets.sockets.hasOwnProperty(k)){
If(ws.sockets.sockets[k] && ws.sockets.sockets[k].nickname == 이름){
                   true를 반환합니다.
            }
}
}
거짓을 반환합니다.
}


클라이언트 코드 작성

서버는 타사 websokcet 프레임워크를 사용하므로 프런트엔드 페이지는 소켓.io 클라이언트 코드를 별도로 참조해야 합니다. 소스 파일은 Windows의 경로는 node_modulessocket에서 찾을 수 있습니다. ionode_modulessocket.io-clientdist는 다음과 같습니다. 개발 버전과 압축 버전의 경우 기본적으로 개발 버전만 인용하시면 됩니다.

프런트엔드는 주로 입력된 닉네임 확인과 메시지 처리를 담당합니다.

코드 복사 코드는 다음과 같습니다.




    socket.io 聊天室例子
   
   
   
   


   

        

            

                

        

        

            
            
            
        

   


핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

nodejs와 vuejs의 차이점 nodejs와 vuejs의 차이점 Apr 21, 2024 am 04:17 AM

Node.js는 서버측 JavaScript 런타임인 반면, Vue.js는 대화형 사용자 인터페이스를 생성하기 위한 클라이언트측 JavaScript 프레임워크입니다. Node.js는 백엔드 서비스 API 개발, 데이터 처리 등 서버 측 개발에 사용되고, Vue.js는 단일 페이지 애플리케이션, 반응형 사용자 인터페이스 등 클라이언트 측 개발에 사용됩니다.

nodejs는 백엔드 프레임워크인가요? nodejs는 백엔드 프레임워크인가요? Apr 21, 2024 am 05:09 AM

Node.js는 고성능, 확장성, 크로스 플랫폼 지원, 풍부한 생태계, 개발 용이성 등의 기능을 제공하므로 백엔드 프레임워크로 사용할 수 있습니다.

nodejs를 mysql 데이터베이스에 연결하는 방법 nodejs를 mysql 데이터베이스에 연결하는 방법 Apr 21, 2024 am 06:13 AM

MySQL 데이터베이스에 연결하려면 다음 단계를 따라야 합니다. mysql2 드라이버를 설치합니다. mysql2.createConnection()을 사용하여 호스트 주소, 포트, 사용자 이름, 비밀번호 및 데이터베이스 이름이 포함된 연결 개체를 만듭니다. 쿼리를 수행하려면 Connection.query()를 사용하세요. 마지막으로 Connection.end()를 사용하여 연결을 종료합니다.

nodejs 설치 디렉토리에 있는 npm과 npm.cmd 파일의 차이점은 무엇입니까? nodejs 설치 디렉토리에 있는 npm과 npm.cmd 파일의 차이점은 무엇입니까? Apr 21, 2024 am 05:18 AM

Node.js 설치 디렉터리에는 npm과 npm.cmd라는 두 가지 npm 관련 파일이 있습니다. 차이점은 다음과 같습니다. 확장자가 다릅니다. npm은 실행 파일이고 npm.cmd는 명령 창 바로 가기입니다. Windows 사용자: npm.cmd는 명령 프롬프트에서 사용할 수 있으며, npm은 명령줄에서만 실행할 수 있습니다. 호환성: npm.cmd는 Windows 시스템에만 해당되며 npm은 크로스 플랫폼에서 사용할 수 있습니다. 사용 권장사항: Windows 사용자는 npm.cmd를 사용하고, 기타 운영 체제는 npm을 사용합니다.

nodejs의 전역 변수는 무엇입니까 nodejs의 전역 변수는 무엇입니까 Apr 21, 2024 am 04:54 AM

Node.js에는 다음과 같은 전역 변수가 존재합니다. 전역 개체: 전역 핵심 모듈: 프로세스, 콘솔, 필수 런타임 환경 변수: __dirname, __filename, __line, __column 상수: undefine, null, NaN, Infinity, -Infinity

nodejs와 java 사이에 큰 차이가 있나요? nodejs와 java 사이에 큰 차이가 있나요? Apr 21, 2024 am 06:12 AM

Node.js와 Java의 주요 차이점은 디자인과 기능입니다. 이벤트 중심 대 스레드 중심: Node.js는 이벤트 중심이고 Java는 스레드 중심입니다. 단일 스레드 대 다중 스레드: Node.js는 단일 스레드 이벤트 루프를 사용하고 Java는 다중 스레드 아키텍처를 사용합니다. 런타임 환경: Node.js는 V8 JavaScript 엔진에서 실행되는 반면 Java는 JVM에서 실행됩니다. 구문: Node.js는 JavaScript 구문을 사용하고 Java는 Java 구문을 사용합니다. 목적: Node.js는 I/O 집약적인 작업에 적합한 반면, Java는 대규모 엔터프라이즈 애플리케이션에 적합합니다.

nodejs는 백엔드 개발 언어인가요? nodejs는 백엔드 개발 언어인가요? Apr 21, 2024 am 05:09 AM

예, Node.js는 백엔드 개발 언어입니다. 서버 측 비즈니스 로직 처리, 데이터베이스 연결 관리, API 제공 등 백엔드 개발에 사용됩니다.

nodejs 프로젝트를 서버에 배포하는 방법 nodejs 프로젝트를 서버에 배포하는 방법 Apr 21, 2024 am 04:40 AM

Node.js 프로젝트의 서버 배포 단계: 배포 환경 준비: 서버 액세스 권한 획득, Node.js 설치, Git 저장소 설정. 애플리케이션 빌드: npm run build를 사용하여 배포 가능한 코드와 종속성을 생성합니다. Git 또는 파일 전송 프로토콜을 통해 서버에 코드를 업로드합니다. 종속성 설치: SSH를 서버에 연결하고 npm install을 사용하여 애플리케이션 종속성을 설치합니다. 애플리케이션 시작: node index.js와 같은 명령을 사용하여 애플리케이션을 시작하거나 pm2와 같은 프로세스 관리자를 사용합니다. 역방향 프록시 구성(선택 사항): Nginx 또는 Apache와 같은 역방향 프록시를 사용하여 트래픽을 애플리케이션으로 라우팅합니다.

See all articles