모듈
웹소켓 지원 모듈
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();
위 코드에서는 require 함수를 통해 내장된 fibjs를 먼저 로드합니다.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 및 기타 콜백 함수와 send 함수를 제공하여 서버에 데이터를 보내고 서버에서 보낸 데이터를 받을 수 있습니다.
인지해야 한다는 것은,WebSocket지원 모듈은 단순히WebSocketHTTP 프로토콜 위에서 작동해야 하는 프로토콜의 구현입니다. 서버 측에서는 업그레이드 기능을 사용하여 HTTP 요청을WebSocket연결하고 클라이언트 측에서는 다음을 통과해야 합니다.WebSocket연결할 서버 주소를 지정하는 프로토콜 URL입니다.
물체
Message
웹소켓 메시지 객체를 생성하세요.WebSocketMessage
1WebSocketMessage ws.Message;
Socket
1WebSocket ws.Socket;
정적 함수
upgrade
다음에서 웹소켓 프로토콜 핸들러를 생성합니다.http업그레이드 요청 및 Handshake 수신, 생성WebSocket물체
1static Handler ws.upgrade(Function accept);
호출 매개변수:
- accept: 함수, 연결 성공 처리 함수, 콜백은 두 개의 매개변수를 전달합니다. 첫 번째 매개변수는 수신된 것입니다.WebSocket객체, 두 번째 매개변수는 핸드셰이크입니다.HttpRequest물체
결과 반환:
- Handler, 프로토콜 핸들러를 반환하며 다음과 함께 사용할 수 있습니다.HttpServer,Chain,Routing도킹을 기다리는 중``
다음에서 웹소켓 프로토콜 핸들러를 생성합니다.http업그레이드 요청 및 Handshake 수신, 생성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
핑 프레임을 나타내는 websocket 메시지 유형 9를 지정합니다.
1const ws.PING = 9;
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;