-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最大的次数 }).