npm -g install sockizy
git clone https://github.com/Daeren/sockizy.git
- Binary (Little/Big - Endian)
- Relative and absolute zero-copy operations wherever possible
- Compression
- Throttle
- FileUpload
- IE11
Goals:
- Low memory usage;
- Maximum performance;
- Flexibility;
- Games.
Index
Server:
const sockizy = ; //----------------------------------------------------- const io = ; //----------------------------------------------------- io;
Client:
<script src="//localhost:1337"></script> <script> const socket = ; socket;</script>
SSL
const ssl = "dir": "/www/site" "key": "/3_site.xx.key" "cert": "/2_site.xx.crt" "ca": "/AddTrustExternalCARoot.crt" "/COMODORSAAddTrustCA.crt" "/COMODORSADomainValidationSecureServerCA.crt" ; //----------------------------------------------------- const io = ;
Verify
/* const info = { "origin": request.headers.origin, "secure": request.connection.authorized !== undefined || request.connection.encrypted !== undefined, "req": request };*/ // Async io; // Sync io;
Packets
// (!) order is important // Server io; // Client socket; // Server io;io; // Client socket; // Server or Client socket;socket; socket;socket;
Bundle (only Server)
io; io;
Packet type
Name | Alias | Note |
---|---|---|
- | ||
bin<size (byte)> | b | default: 1024 (0-65535); server: Buffer; client: Uint8Array; |
str<size (byte)> | s | default: 256 (0-65535) |
int<size (bit)> | i | size: 8, 16, 32, 64 (BigInt64Array) |
uint<size (bit)> | u | size: 8, 16, 32, 64 (BigUint64Array) |
float<size (bit)> | f | size: 32, 64 |
json<size (byte)> | j | default: 8192 (0-65535) |
Server options
Name | Note |
---|---|
- | |
port | default: undefined |
host | default: * |
server | default: http.Server |
path | default: "/" |
- | |
ssl | |
- | |
maxPayload | default: 1024 * 32 |
perMessageDeflate | default: false |
noDelay | default: true |
- | |
ping | default: {"interval": 10000} (ms) |
clientJs | default: true |
packets | dependencies: clientJs;(autointegration) |
Bundle: app.bundle(), socket.bundle([isBroadcast])
Name | Note |
---|---|
- | |
write(name, data) | returns: number of bytes written |
end([name, data]) | returns: number of bytes sent |
Server: app([port, options])
Name | Note | |
---|---|---|
app.property | ||
wss | uws | |
app.method | ||
emit(name[, data]) | returns: number of bytes sent | |
bundle() | ||
text(data) | ||
json(data) | ||
broadcast(data[, options]) | native | |
- | ||
listen([port, host, callback]) | default: "localhost:1337" | |
close([callback]) | ||
- | ||
packets([unpack, pack, shared]) | return this; | |
verifyClient(func(info[, callback])) | return this; | |
sendPacketTransform(func(type, data)) | return this; | |
recvPacketTransform(func(data)) | return this; | |
- | ||
on(name, listener) | return this; | |
off([name, listener]) | return this; | |
app.events | ||
connection (socket, request) | ||
close (socket, code, reason, wasClean) | ||
packet (name, data, socket, accept) | ||
listening () | ||
error (e) | ||
socket.property | ||
readyState | number (read only) | |
upgradeReq | object (read only) | |
- | ||
remotePort | (read only) | |
remoteAddress | (read only) | |
remoteFamily | (read only) | |
socket.method | ||
emit(name, [data, isBroadcast]) | returns: number of bytes sent | |
bundle([isBroadcast]) | ||
text (data[, isBroadcast]) | ||
json (data[, isBroadcast]) | ||
send(data[, options]) | native | |
- | ||
disconnect([code, reason]) | code: 4000-4999 | |
terminate() | ||
- | ||
ping([message]) | ||
- | ||
on(name, listener) | return this; | |
once(name, listener) | return this; | |
off([name, listener]) | return this; | |
socket.events | ||
close (code, reason, wasClean) | ||
disconnected (code, reason) | ||
terminated (code) | ||
error (e) | ||
- | ||
message (data) | ||
text (data) | ||
json (data) | ||
arraybuffer (data) | intercepts and blocks unpacking of packets | |
- | ||
ping (message) | ||
pong (message) | ||
- | ||
myEvent (data) |
Client options
Name | Note |
---|---|
- | |
secure | |
reconnectionDelay | default: 1 sec (minimum) |
reconnectionAttempts | default: Infinity |
Client: app([url, options])
Name | Note | |
---|---|---|
app.property | ||
url | string (read only) | |
reconnecting | bool (read only) | |
bufferedAmount | number (read only) | |
readyState | number (read only) | |
app.method | ||
emit(name[, data]) | returns: number of bytes sent | |
text(data) | ||
json(data) | ||
send(data) | native | |
- | ||
disconnect(code, reason) | code: 4000-4999 | |
- | ||
packets([pack, unpack, shared]) | return this; | |
sendPacketTransform(func(type, data)) | return this; | |
recvPacketTransform(func(data)) | return this; | |
- | ||
on(name, listener) | return this; | |
once(name, listener) | return this; | |
off([name, listener]) | return this; | |
app.events | ||
restoring (attempts) | ||
restored (attempts) | ||
unrestored (attempts) | ||
- | ||
open () | ||
close (code, reason, event) | code: 1003 - invalid packet | |
disconnected (code, reason, event) | ||
terminated (code, event) | ||
- | ||
message (data, event) | ||
text (data, event) | ||
json (data, event) | ||
arraybuffer (data, event) | intercepts and blocks unpacking of packets | |
packet (name, data, accept) | ||
error (e) | ||
- | ||
myEvent (data) |
License
MIT