diff options
| author | Dmitry Sharshakov <sh7dm@outlook.com> | 2019-02-02 22:57:27 +0300 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2019-02-02 14:57:27 -0500 |
| commit | b400dad9b7da542799f504c5146efb33e796c250 (patch) | |
| tree | 4b640e2839a1fb411192887e9a55aa8871e9ad18 /ws/mod.ts | |
| parent | 0f87175220916f0c17025129b44cffc32ae99b3f (diff) | |
Move WebSocket op codes to enum (denoland/deno_std#171)
Original: https://github.com/denoland/deno_std/commit/56579ed6adb9051494ec9aa58253ac5a8ff251a2
Diffstat (limited to 'ws/mod.ts')
| -rw-r--r-- | ws/mod.ts | 48 |
1 files changed, 25 insertions, 23 deletions
@@ -5,12 +5,14 @@ import { BufReader, BufWriter } from "../io/bufio.ts"; import { readLong, readShort, sliceLongToBytes } from "../io/ioutil.ts"; import { Sha1 } from "./sha1.ts"; -export const OpCodeContinue = 0x0; -export const OpCodeTextFrame = 0x1; -export const OpCodeBinaryFrame = 0x2; -export const OpCodeClose = 0x8; -export const OpcodePing = 0x9; -export const OpcodePong = 0xa; +export enum OpCode { + Continue = 0x0, + TextFrame = 0x1, + BinaryFrame = 0x2, + Close = 0x8, + Ping = 0x9, + Pong = 0xa +} export type WebSocketEvent = | string @@ -77,9 +79,9 @@ class WebSocketImpl implements WebSocket { for await (const frame of receiveFrame(this.conn)) { unmask(frame.payload, frame.mask); switch (frame.opcode) { - case OpCodeTextFrame: - case OpCodeBinaryFrame: - case OpCodeContinue: + case OpCode.TextFrame: + case OpCode.BinaryFrame: + case OpCode.Continue: frames.push(frame); payloadsLength += frame.payload.length; if (frame.isLastFrame) { @@ -89,7 +91,7 @@ class WebSocketImpl implements WebSocket { concat.set(frame.payload, offs); offs += frame.payload.length; } - if (frames[0].opcode === OpCodeTextFrame) { + if (frames[0].opcode === OpCode.TextFrame) { // text yield new Buffer(concat).toString(); } else { @@ -100,7 +102,7 @@ class WebSocketImpl implements WebSocket { payloadsLength = 0; } break; - case OpCodeClose: + case OpCode.Close: const code = (frame.payload[0] << 16) | frame.payload[1]; const reason = new Buffer( frame.payload.subarray(2, frame.payload.length) @@ -108,10 +110,10 @@ class WebSocketImpl implements WebSocket { this._isClosed = true; yield { code, reason }; return; - case OpcodePing: + case OpCode.Ping: yield ["ping", frame.payload] as WebSocketPingEvent; break; - case OpcodePong: + case OpCode.Pong: yield ["pong", frame.payload] as WebSocketPongEvent; break; } @@ -123,7 +125,7 @@ class WebSocketImpl implements WebSocket { throw new SocketClosedError("socket has been closed"); } const opcode = - typeof data === "string" ? OpCodeTextFrame : OpCodeBinaryFrame; + typeof data === "string" ? OpCode.TextFrame : OpCode.BinaryFrame; const payload = typeof data === "string" ? this.encoder.encode(data) : data; const isLastFrame = true; await writeFrame( @@ -142,7 +144,7 @@ class WebSocketImpl implements WebSocket { await writeFrame( { isLastFrame: true, - opcode: OpCodeClose, + opcode: OpCode.Close, mask: this.mask, payload }, @@ -170,7 +172,7 @@ class WebSocketImpl implements WebSocket { await writeFrame( { isLastFrame: true, - opcode: OpCodeClose, + opcode: OpCode.Close, mask: this.mask, payload }, @@ -205,12 +207,12 @@ export async function* receiveFrame( const frame = await readFrame(reader); const { opcode, payload } = frame; switch (opcode) { - case OpCodeTextFrame: - case OpCodeBinaryFrame: - case OpCodeContinue: + case OpCode.TextFrame: + case OpCode.BinaryFrame: + case OpCode.Continue: yield frame; break; - case OpCodeClose: + case OpCode.Close: await writeFrame( { opcode, @@ -223,18 +225,18 @@ export async function* receiveFrame( yield frame; receiving = false; break; - case OpcodePing: + case OpCode.Ping: await writeFrame( { payload, isLastFrame, - opcode: OpcodePong + opcode: OpCode.Pong }, conn ); yield frame; break; - case OpcodePong: + case OpCode.Pong: yield frame; break; } |
