|
|
- -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(DefWsOpts, [
- binary
- , {packet, raw}
- , {active, false}
- , {reuseaddr, true}
- , {nodelay, false}
- , {delay_send, true}
- , {send_timeout, 15000}
- , {keepalive, true}
- , {exit_on_close, true}
- , {backlog, 4096}
- ]).
-
- -define(IIF(Cond, Then, That), case Cond of true -> Then; _ -> That end).
-
- -export_type([
- sendfile_opts/0
- ]).
-
- -type sendfile_opts() :: [{chunk_size, non_neg_integer()}].
-
- -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 = infinity :: pos_integer() %% 允许接收的最大长度
- , maxChunkCnt = 0 :: pos_integer() %% 允许接收的最大chunk 数量
- , maxRecvCnt = 0 :: pos_integer() %% 允许允许recv最大的次数
- }).
|