-include("eWSrv.hrl").
|
|
|
|
-define(wsErr(Str), error_logger:error_msg(Str)).
|
|
-define(wsErr(Format, Args), error_logger:error_msg(Format, Args)).
|
|
-define(wsWarn(Format, Args), error_logger:warning_msg(Format, Args)).
|
|
-define(wsInfo(Format, Args), error_logger:info_msg(Format, Args)).
|
|
-define(wsGLV(Key, List, Default), wsUtil:gLV(Key, List, Default)).
|
|
|
|
-define(IIF(Cond, Then, That), case Cond of true -> Then; _ -> That end).
|
|
|
|
-type stage() :: reqLine | header | body | done. %% 接受http请求可能会有多个包 分四个阶接收
|
|
|
|
|
|
-record(wsState, {
|
|
stage = reqLine :: stage() %% 接收数据阶段
|
|
, buffer = <<>> :: binary() %% 缓存接收到的数据
|
|
, wsReq :: undefined | #wsReq{} %% 解析后的http
|
|
, headerCnt = 0 :: pos_integer() %% header计数
|
|
, temHeader = [] :: [headers()] %% 解析header临时数据
|
|
, contentLength :: undefined | non_neg_integer() | chunked %% 长度
|
|
, temChunked = <<>> :: binary()
|
|
, method :: method()
|
|
, path :: binary()
|
|
, rn :: undefined | binary:cp()
|
|
, socket :: undefined | wsNet:socket()
|
|
, isSsl = false :: boolean()
|
|
, wsMod :: module()
|
|
, maxSize = 0 :: pos_integer() %% 允许接收的最大长度
|
|
, maxChunkCnt = 0 :: pos_integer() %% 允许接收的最大chunk 数量
|
|
, maxRecvCnt = 0 :: pos_integer() %% 允许允许recv最大的次数
|
|
}).
|