모듈 ws
웹 소켓 지원 모듈
WebSocket프로토콜은 브라우저와 서버 사이에 중단 없는 연결을 설정하고 실시간 양방향 데이터 전송을 실현할 수 있으며 모든 형식의 데이터 전송을 지원할 수 있는 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜입니다. fibjs에서WebSocket지원 모듈은 실현할 수 있는 해당 API 인터페이스를 제공합니다.WebSocket서버 측 및 클라이언트 측 개발.
지침:
1var ws = require('ws');
서버 생성:
1
2
3
4
5
6
7
8
9var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade((conn, req) => {
conn.onmessage = e => console.log(e.data);
})
});
svr.start();
위의 코드에서 내장된 fibjs는 먼저 require 함수를 통해 로드됩니다.WebSocket지원 모듈, 다음 사용http.Server이 클래스는 HTTP 서버 인스턴스를 생성하고 수신 포트 번호와 HTTP 요청 경로를 지정한 다음 지정된 경로에서 업그레이드 기능을 사용하여 요청을 업그레이드합니다.WebSocket연결하면 서버가 자동으로WebSocket개체는 onopen, onmessage, onerror, onclose 및 기타 이벤트를 제공하며 send 기능을 통해 클라이언트에 데이터를 보낼 수 있습니다.
사용WebSocket고객:
1
2
3
4var ws = require('ws');
var conn = new ws.Socket('ws://127.0.0.1/ws');
conn.onmessage = e => console.log(e.data);
에 의해 생성될 수 있습니다.Socket인스턴스를 지정하고WebSocket클라이언트 연결을 완료하기 위한 URL입니다.Socket이 클래스는 onmessage, onerror, onclose 및 기타 콜백 기능과 송신 기능을 제공하여 서버에 데이터를 보내고 서버에서 보낸 데이터를 받을 수 있습니다.
알아두어야 할 것은,WebSocket지원 모듈은WebSocketHTTP 프로토콜 위에서 작동해야 하는 프로토콜의 구현입니다. 서버 측에서 HTTP 요청을 다음으로 변환할 수 있습니다.WebSocket클라이언트 측에 있는 동안 연결을 통과해야 합니다.WebSocket연결할 서버의 주소를 지정하는 프로토콜 URL입니다.
물체
Message
websocket 메시지 객체 생성, 참조WebSocketMessage
1WebSocketMessage ws.Message;
Socket
1WebSocket ws.Socket;
정적 함수
upgrade
에서 websocket 프로토콜 핸들러를 생성합니다.http업그레이드 요청 접수 및 악수, 생성WebSocket물체
1static Handler ws.upgrade(Function accept);
호출 매개변수:
- accept: 함수, 연결 성공 처리 함수, 콜백은 두 개의 매개변수를 전달합니다. 첫 번째 매개변수는 수신된 것입니다.WebSocket객체, 두 번째 매개변수는 핸드셰이크입니다.HttpRequest물체
반환 결과:
- Handler, 함께 사용할 수 있는 프로토콜 처리기를 반환합니다.HttpServer,Chain,Routing도킹 대기 중```
에서 websocket 프로토콜 핸들러를 생성합니다.http업그레이드 요청 접수 및 악수, 생성WebSocket물체
1
2static Handler ws.upgrade(Object opts,
Function accept);
호출 매개변수:
- opts: 개체, 연결 옵션, 기본값은 {}입니다.
- accept: 함수, 연결 성공 처리 함수, 콜백은 두 개의 매개변수를 전달합니다. 첫 번째 매개변수는 수신된 것입니다.WebSocket객체, 두 번째 매개변수는 핸드셰이크입니다.HttpRequest물체
반환 결과:
- Handler, 함께 사용할 수 있는 프로토콜 처리기를 반환합니다.HttpServer,Chain,Routing도킹 대기 중
opts에는 요청에 대한 추가 옵션이 포함되어 있으며 지원되는 콘텐츠는 다음과 같습니다.
1
2
3
4{
"perMessageDeflate": false, // specify whether to use permessage-deflate, default is true
"maxPayload": 67108864 // specify the maximum allowed message size, default is 64MB
}
끊임없는
CONTINUE
연속 프레임을 나타내는 websocket 메시지 유형 0 지정
1const ws.CONTINUE = 0;
TEXT
텍스트 프레임을 나타내는 websocket 메시지 유형 1 지정
1const ws.TEXT = 1;
BINARY
바이너리 프레임을 나타내는 websocket 메시지 유형 2 지정
1const ws.BINARY = 2;
CLOSE
websocket 메시지 유형 8을 지정하면 연결이 닫힙니다.
1const ws.CLOSE = 8;
PING
ping 프레임을 나타내는 websocket 메시지 유형 9 지정
1const ws.PING = 9;
PONG
pong 프레임을 나타내는 websocket 메시지 유형 10 지정
1const ws.PONG = 10;
CONNECTING
지정하다WebSocket연결 중임을 나타내는 상태
1const ws.CONNECTING = 0;
OPEN
지정하다WebSocket열린 상태를 나타내는 상태
1const ws.OPEN = 1;
CLOSING
지정하다WebSocketCLOSE 메시지가 전송되었고 닫히기를 기다리는 상태를 나타내는 상태
1const ws.CLOSING = 2;
CLOSED
지정하다WebSocket닫혀 있음을 나타내는 상태
1const ws.CLOSED = 3;