



// 导出部分常用组件
/*-----------------------------------------------------------------------------------------------------------*/
const $Net={}

$Net.tw = new Map();//用户管理,websocket的发送消息只能用,send(data),json(自带协议解析)
// $Net.twH = new WeakMap();//用户管理,只管理socket标识
// $Net.twC=2;//每台设备可以关联登陆的个数
$Net.twType=['pc','mobile','dev','asyncWeb','webrtc'];//每个用户最多登录几个（手机，电脑登录等,必须大于1）
$Net.twLen=20480;//缓存区，消息最长20480个字节(有几个字节的误差，取决于分隔符)
$Net.twTimeout=1000*120//多久没和客户端通信，则关闭客户端
$Net.twResponse=true//回复心跳空包
$Net.twHeartPrint=false//打印心跳包的发送与回复数据
$Net.twMin=0//两条消息最小间隔时间ms,tcp/ws,(每个连接)
$Net.twUsers=3//单条连接最多登陆多少用户，关闭一个，这条连接的其他用户也会关闭
$Net.twMinUdp=5//两条消息最小间隔时间ms,udp,(每个服务)


$Net.heartTag='\\a'//\a代表心跳


$Net.udp={
    recv:1024*10,//输入缓冲区大小,字节,不超过 64K
    send:1024*10,//输出缓冲区大小,字节,不超过 64K

    // IP 数据包每向前经过一个路由或网关时，TTL 值减 1，若经过某个路由时，TTL 值被减至 0，便不再继续向前传输。
    ttl:4,//参数是一个范围为 0 至 255 的跳步数。大多数系统的默认值是 64。


    // 1、局部多播地址：在224.0.0.0～224.0.0.255之间，这是为路由协议和其他用途保留的地址，路由器并不转发属于此范围的IP包。
    // 2、预留多播地址：在224.0.1.0～238.255.255.255之间，可用于全球范围（如Internet）或网络协议。
    // 3、管理权限多播地址：在239.0.0.0～239.255.255.255之间，可供组织内部使用，类似于私有IP地址，不能用于Internet，可限制多播范围。

    multi:true,//是否启用多播
    multiTtl:2,//多播 大多数系统的默认值是 1。
    multiLoop:false,//多播时，设置为true，本机也会接收，需在消息接收端设置,建议关闭，会导致重复调用
    multiAddr:'239.0.0.1',//多播地址
    multiPort:8000,//多播端口
    

    server:''//udp服务器
}




$Net.package={
    tag:{
        init:'@',
        val:'0',
        reg:/@/g,
        regU:/@0/g,
    },
    end:{
        init:'\\f',
        val:'1',
        reg:/\\f/g,
        regU:/@2/g,
    }
}

module.exports=$Net
/*-----------------------------------------------------------------------------------------------------------*/
