เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบžเบฒเบชเบฒเบเบฃเบฑเปˆเบ‡เปเบญเบชเบ›เบฒเป‚เบเบ™

Ad


OnWorks favicon

haproxy-lua - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

เป€เบ›เบตเบ”เปƒเบŠเป‰ haproxy-lua เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเบœเปˆเบฒเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ haproxy-lua เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฒเบเป†เบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบ™เป„เบฅเบ™เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบฑเปˆเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เป‚เบ„เบ‡เบเบฒเบ™:

NAME


haproxy-lua - haproxy-lua เป€เบญเบเบฐเบชเบฒเบ™

HAPROXY LUA เปเบฅเปˆเบ™ เป€เบ™เบทเป‰เบญเปƒเบ™


เบฅเบฐเบซเบฑเบ” Lua เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ HAProxy เบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป„เบ”เป‰เปƒเบ™ 2 เป‚เปเบ”เบซเบผเบฑเบ. เบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบฎเบนเบšเปเบšเบšเบเบฒเบ™, เปเบฅเบฐเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™ runtime เบฎเบนเบšเปเบšเบšเบเบฒเบ™.

ยทเปƒเบ™ เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบฎเบนเบšเปเบšเบšเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ DNS, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ” socket I/O.
เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰, HAProxy เบเบฑเบ‡เบ„เบปเบ‡เบ–เบทเบเบšเบฅเบฑเบญเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Lua
เป‚เบ„เบ‡เบเบฒเบ™.

ยทเปƒเบ™ runtime เบฎเบนเบšเปเบšเบšเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ DNS เป„เบ”เป‰, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ sockets. เป„เบ”เป‰
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ” Lua เปเบกเปˆเบ™ multiplexed เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ” Luaโ€‹
เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบต.

เบฅเบฐเบซเบฑเบ” Lua เบ–เบทเบเป‚เบซเบฅเบ”เบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเป„เบŸเบฅเปŒ. เป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ.
Lua เบกเบต 6 เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

1. เป„เบŸเบฅเปŒ Lua เบฎเปˆเบฒเบ‡เบเบฒเบ context. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒ Lua เปƒเบ™
HAProxy [เบ—เบปเปˆเบงเป‚เบฅเบ] เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹ lua-load. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป‚เปเบ”. เบžเบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบœเบนเบเบกเบฑเบ” Lua เปƒเบ™ HAProxy.

2. เบ—เบฒเบ”เบซเบผเบงเบ‡ เปƒเบ™โ€‹เบกเบฑเบ™ context. เบกเบฑเบ™เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบ HAProxy
paring เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ™เบตเป‰,
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก HAProxy เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเป‰เบง. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบซเบผเบท
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ socket เบซเบผเบทเบงเบฝเบเบ‡เบฒเบ™. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบขเบนเปˆเปƒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ
เบชเบฐเบžเบฒเบšเบเบฒเบ™เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ Lua core.register_init(). เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: เบซเบ™เป‰เบฒเบ—เบตเปˆ fcn().

3. เบ—เบฒเบ”เบซเบผเบงเบ‡ เบงเบฝเบเบ‡เบฒเบ™ context. เบกเบฑเบ™เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ HAProxy
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆ Lua
core.register_task(). เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบžเป‰เบญเบกเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เบกเบฑเบ™โ€‹เปเบกเปˆเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป‚เบซเบกเบ” runtime. เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบเบฑเบšเบ„เบทเบ™เบกเบนเบ™เบ„เปˆเบฒเปเบฅเบฐเบšเปเปˆเบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: เบซเบ™เป‰เบฒเบ—เบตเปˆ fcn().

4. เป„เบ”เป‰ เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” context. เบกเบฑเบ™เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ Lua เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบเบฒเบ™เบเบฐเบ—เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡ Lua "core.register_action()โ€œ.เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŠเบฒเบงเบฅเบท
function เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบ›เบฑเบ™ function เบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบซเบเบฑเบ‡เปเบฅเบฐเป€เบญเบปเบฒเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡
เบ›เบฐเป€เบžเบ” TXN เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒ. เบซเบ™เป‰เบฒเบ—เบตเปˆ fcn(txn).

5. เป„เบ”เป‰ เบ•เบปเบงเบขเปˆเบฒเบ‡-fetch context. เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบญเบปเบฒเบงเบฑเบ”เบ–เบธ TXN เป€เบ›เบฑเบ™ argument เป€เบ‚เบปเป‰เบฒเปเบฅเบฐ
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบเบฑเบ”เปƒเบ”เป†. เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
เบกเบตเบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเบฒเบ™เบฎเบงเบšเบฎเบงเบกเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš HAProxy เบ•เบปเบงเบขเปˆเบฒเบ‡-fetches เปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.
เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบกเปˆเบ™ เบซเบ™เป‰เบฒเบ—เบตเปˆ string fcn(txn). เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ Lua core.register_fetches(). เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบ”เบถเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบกเปˆเบ™โ€‹
เบ–เบทเบเบ™เบณเปœเป‰เบฒเป‚เบ”เบเบชเบฐเบ•เบฃเบดเบ‡ "lua."

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
HAProxy เบ•เบปเบงเบขเปˆเบฒเบ‡-fetches, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

6. เป„เบ”เป‰ converter context. เบกเบฑเบ™เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เบชเบฒเบเป€เบ›เบฑเบ™ input เปเบฅเบฐเบเบฑเบšเบ„เบทเบ™
เบชเบฐเบ•เบฃเบดเบ‡เบญเบทเปˆเบ™เป€เบ›เบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบฅเบฑเบ”, เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบซเบฒเป„เบ”เป‰
เบชเบฐเบžเบฒเบšเบเบฒเบ™เปƒเบ”เบ™เบถเปˆเบ‡. เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปƒเบ”เป†. เบ•เบปเป‰เบ™เปเบšเบšเบเบฒเบ™เป‚เบ—เปเบกเปˆเบ™ เบซเบ™เป‰เบฒเบ—เบตเปˆ
string fcn(string). เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ Lua
core.register_converters(). เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบ–เบทเบเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบเบชเบฐเบ•เบฃเบดเบ‡ "lua."

HAPROXY LUA HELLO WORLD


เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy (เบชเบฐเบšเบฒเบเบ”เบต_world.conf):

เบ—เบปเปˆเบงเป‚เบฅเบ
lua-load hello_world.lua

เบŸเบฑเบ‡เบ•เบปเบงเปเบ—เบ™
เบœเบนเบเบกเบฑเบ” 127.0.0.1:10001
tcp-request inspect-delay 1s
tcp-request content use-service lua.hello_world

เป„เบŸเบฅเปŒ HAProxy Lua (เบชเบฐเบšเบฒเบเบ”เบต_world.lua):

core.register_service("hello_world", "tcp", function(applet)
applet:send("เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ\n")
เบชเบธเบ”เบ—เป‰เบฒเบ)

เบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ HAProxy เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰:

./haproxy -f hello_world.conf

เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบšเบ”เป‰เบงเบ telnet:

#:~ telnet 127.0.0.1 10001
เบชเบฐโ€‹เบšเบฒเบโ€‹เบ”เบตโ€‹เบŠเบฒเบงโ€‹เป‚เบฅเบ

เบฅเบฐเบ”เบฑเบš เบซเบผเบฑเบ()
เบซเป‰เบญเบ‡เบฎเบฝเบ™ "เบซเบผเบฑเบ" เบ›เบฐเบเบญเบšเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ HAProxy เบ—เบฑเบ‡เปเบปเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ›เบฐเป‚เบซเบเบ”
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เป„เบซเบผโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™ hooksโ€‹, manipulating เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เบ—เบปเปˆเบงโ€‹เป‚เบฅเบโ€‹
เบซเบผเบท ACL, ...

เบซเป‰เบญเบ‡เบฎเบฝเบ™ "เบซเบผเบฑเบ" เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบงเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเบฑเบš HAProxy. เบšเปเปˆ เบ•เป‰เบญเบ‡เบเบฒเบ™ เป€เบชเบฑเป‰เบ™เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™
เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบซเป‰เบญเบ‡เบฎเบฝเบ™ "เบซเบผเบฑเบ" เปเบกเปˆเบ™เบ„เบปเบ‡เบ—เบตเปˆ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ™เบตเป‰.

core.emerge

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบš "เบเบฒเบ™โ€‹เบชเบธเบโ€‹เป€เบชเบตเบ™โ€‹"
(0).

core.alert

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "เป€เบ•เบทเบญเบ™โ€‹" (1โ€‹)โ€‹.

core.crit

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "criticalโ€‹" (2โ€‹)โ€‹.

core.err

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹" (3โ€‹)โ€‹.

core.warning

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹" (4โ€‹)โ€‹.

core.notice

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™ "เปเบˆเป‰เบ‡โ€‹เบเบฒเบ™โ€‹" (5โ€‹)โ€‹.

core.info

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹" (6โ€‹)โ€‹.

core.debug

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบ”เบฑเบš loglevel "debugโ€‹" (7โ€‹)โ€‹.

core.log(เบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบ, เบ‚เปเป‰เบ„เบงเบฒเบก)
context: body, init, task, action, sample-fetch, converter

เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบšเบฑเบ™เบ—เบถเบ. เบšเบฑเบ™เบ—เบถเบเบ–เบทเบเบชเบปเปˆเบ‡, เบญเบตเบ‡เบ•เบฒเบก HAProxy
เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ syslog เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบขเบนเปˆเปƒเบ™
stderr เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”.

Arguments

ยท loglevel (integer) -- เบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบก. เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹
เบ•เบปเบงเป€เบฅเบเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เบซเบฒ 7.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (เบ„เปเบฒเบ™เบดเบเบฒเบกเบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบ)

เป€เบšเบดเปˆเบ‡ code.Debug

เป€เบšเบดเปˆเบ‡ เบซเบผเบฑเบ.เบ‚เปเป‰เบกเบนเบ™

เป€เบšเบดเปˆเบ‡ เบซเบผเบฑเบ.เบ„เบณเป€เบ•เบทเบญเบ™

เป€เบšเบดเปˆเบ‡ เบซเบผเบฑเบ.เป€เบ•เบทเบญเบ™

เบซเบผเบฑเบ.เบ”เบตเบšเบฑเบ(เบ‚เปเป‰เบ„เบงเบฒเบก)
context: body, init, task, action, sample-fetch, converter

Arguments

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ log

เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš:

เบซเบ™เป‰เบฒเบ—เบตเปˆ Debug(เบ‚เปเป‰เบ„เบงเบฒเบก)
core.log(core.debug, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

เบซเบผเบฑเบ.เบ‚เปเป‰เบกเบนเบ™(เบ‚เปเป‰เบ„เบงเบฒเบก)
context: body, init, task, action, sample-fetch, converter

Arguments

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ log

เบซเบ™เป‰เบฒเบ—เบตเปˆ เบ‚เปเป‰เบกเบนเบ™(เบ‚เปเป‰เบ„เบงเบฒเบก)
core.log(core.info, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

เบซเบผเบฑเบ.เบ„เบณเป€เบ•เบทเบญเบ™(เบ‚เปเป‰เบ„เบงเบฒเบก)
context: body, init, task, action, sample-fetch, converter

Arguments

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ log

เบซเบ™เป‰เบฒเบ—เบตเปˆ เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบž(เบ‚เปเป‰เบ„เบงเบฒเบก)
core.log(core.warning, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

เบซเบผเบฑเบ.เป€เบ•เบทเบญเบ™(เบ‚เปเป‰เบ„เบงเบฒเบก)
context: body, init, task, action, sample-fetch, converter

Arguments

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ log

เบซเบ™เป‰เบฒเบ—เบตเปˆ เป€เบ•เบทเบญเบ™(เบ‚เปเป‰เบ„เบงเบฒเบก)
core.log(core.alert, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

core.add_acl(เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™)
context: init, task, action, sample-fetch, converter

เป€เบžเบตเปˆเบก ACL เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ ACLs เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเป„เบŸเบฅเปŒ เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™.

Arguments

ยท เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ (string) -- เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เบฅเบฒเบเบเบฒเบ™ ACL.

ยท เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ (string) -- เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹.

core.del_acl(เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™)
context: init, task, action, sample-fetch, converter

เบฅเบปเบšเบฅเบฒเบเบเบฒเบ™ ACL เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเบ„เบต เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ ACLs เบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบ
เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™.

Arguments

ยท เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ (string) -- เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เบฅเบฒเบเบเบฒเบ™ ACL.

ยท เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ (string) -- เบเบฐเปเบˆเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบฅเบถเบš.

core.del_map(เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™)
context: init, task, action, sample-fetch, converter

เบฅเบปเบšเบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบตเบ”เป‰เบงเบเบเบฐเปเบˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡
เป‚เบ”เบเบŠเบทเปˆเป„เบŸเบฅเปŒเบ‚เบญเบ‡เบฅเบฒเบง.

Arguments

ยท เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ (string) -- เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆ.

ยท เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ (string) -- เบเบฐเปเบˆเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบฅเบถเบš.

core.msleep(เบกเบดเบ™เบฅเบดเบงเบดเบ™เบฒเบ—เบต)
context: body, init, task, action

เป„เบ”เป‰ core.msleep() เบขเบธเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Lua เบฅเบฐเบซเบงเปˆเบฒเบ‡เบกเบดเบ™เบฅเบดเบงเบดเบ™เบฒเบ—เบตเบ—เบตเปˆเบฅเบฐเบšเบธ.

Arguments

ยท เบกเบดเบ™เบฅเบดเบฅเบดเบ” (integer) -- milliseconds เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

core.register_action(เบŠเบทเปˆ, เบเบฒเบ™เบเบฐ เบ—เบณ, เบกเปˆเบงเบ™)
context: เบฎเปˆเบฒเบ‡เบเบฒเบ

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฐเบ—เปเบฒ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เปƒเบ™ HAProxy เบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ "lua." เบ„เบณเบชเบฑเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบŠเบฑเป‰เบ™เบงเบฑเบ”เบ–เบธ TXN เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™.

Arguments

ยท เบŠเบทเปˆ (string) -- เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

ยท เบซเบธเป‰เบ™ (เบ•เบฒเบ•เบฐเบฅเบฒเบ‡) -- เปเบกเปˆเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” HAProxy เปƒเบœ
เบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบš. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰เปเบกเปˆเบ™ 'tcp-req', 'tcp-res',
'http-req' เบซเบผเบท 'http-res'.

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

เบŸเบฑเบ‡เบŠเบฑเบ™(txn)

ยท

txn (TXN เบฅเบฐเบ”เบฑเบš): เบ™เบตเป‰ is a TXN เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡ เปƒเบซเบกเปˆ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ manipulating เป„เบ”เป‰
เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบผเบท TCP stream.

เบ—เบตเปˆเบ™เบตเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡ 'เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ' เปƒเบ™
เบšเบฑเบ™เบ—เบถเบ.

core.register_action("hello-world", { "tcp-req", "http-req" }, function(txn)
txn:Info("เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ")
เบชเบธเบ”เบ—เป‰เบฒเบ)
เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAproxy เปเบšเบšเบ™เบตเป‰:

เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ tcp_frt
tcp เบฎเบนเบšเปเบšเบš
tcp-request content lua.hello-world

เบ”เป‰เบฒเบ™เปœเป‰เบฒ http_frt
เป‚เบซเบกเบ” http
http-request lua.hello-world

core.register_converters(เบŠเบทเปˆ, เบกเปˆเบงเบ™)
context: เบฎเปˆเบฒเบ‡เบเบฒเบ

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™. เบ—เบฑเบ‡เบซเบกเบปเบ” converters เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”
เปƒเบŠเป‰เปƒเบ™ HAProxy เบ”เป‰เบงเบเบ„เบณเบ™เบณเปœเป‰เบฒ "lua." เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบฒเบเป€เบ›เบฑเบ™ input เปเบฅเบฐ
เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เป€เบ›เบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ–เบดเบ‡ 9 เบ„เปˆเบฒเป€เบ›เบฑเบ™
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡.

Arguments

ยท เบŠเบทเปˆ (string) -- เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

function(str, [p1 [, p2 [, ... [, p5]]]])

ยท str (string): เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ„เปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เบ›เปˆเบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹.

ยท p1 .. p5 (string): เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ string arguments เบ›เบฐเบเบฒเบ”เปƒเบ™ haroxy
เป„เบŸเบฅโ€‹เปŒโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹. เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบšเปเปˆเป€เบเบตเบ™ 5. เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐ
เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบทเบญเบเบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ.

core.register_fetches(เบŠเบทเปˆ, เบกเปˆเบงเบ™)
context: เบฎเปˆเบฒเบ‡เบเบฒเบ

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™. เบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบฑเบ‡เปเบปเบ”
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™ HAProxy เบ”เป‰เบงเบเบ„เบณเบ™เบณเปœเป‰เบฒ "lua." เบเบฒเบ™เบ”เบถเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ Lua เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡
เป€เบ›เบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเป€เบ–เบดเบ‡ 9 เบ„เปˆเบฒเป€เบ›เบฑเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ—เบฑเบ‡เปเบปเบ”
เบ„เปˆเบฒเปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡.

Arguments

ยท เบŠเบทเปˆ (string) -- เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡ fetch.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡(txn, [p1 [, p2 [, ... [, p5]]]])

ยท txn (TXN เบฅเบฐเบ”เบฑเบš): เบ™เบตเป‰เปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธ txn เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.

ยท p1 .. p5 (string): เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ string arguments เบ›เบฐเบเบฒเบ”เปƒเบ™ haroxy
เป„เบŸเบฅโ€‹เปŒโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹. เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบšเปเปˆเป€เบเบตเบ™ 5. เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐ
เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบทเบญเบเบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ.

ยท เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™: เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบญเบฑเบ™, เบšเปเปˆเปเบกเปˆเบ™เบ–เป‰เบฒเบ„เปˆเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ„เบทเบ™เป„เบ”เป‰เปƒเบ™เบ•เบญเบ™เบ™เบตเป‰.

lua เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹:

core.register_fetches("เบชเบฐเบšเบฒเบเบ”เบต", เบŸเบฑเบ‡เบŠเบฑเบ™(txn)
เบเบฑเบšเบ„เบทเบ™ "เบชเบฐเบšเบฒเบเบ”เบต"
เบชเบธเบ”เบ—เป‰เบฒเบ)
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡ HAProxy:

เบ•เบปเบงเบขเปˆเบฒเบ‡ frontend
http-request redirect location /%[lua.hello]

core.register_service(เบŠเบทเปˆ, เบฎเบนเบšเปเบšเบš, เบกเปˆเบงเบ™)
context: เบฎเปˆเบฒเบ‡เบเบฒเบ

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เปƒเบŠเป‰เปƒเบ™ HAProxy เบ”เป‰เบงเบเบ„เบณเบ™เบณเปœเป‰เบฒ "lua." เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบŠเบฑเป‰เบ™เบงเบฑเบ”เบ–เบธเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™
เบญเบตเบ‡โ€‹เบ•เบฒเบกโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹.

Arguments

ยท เบŠเบทเปˆ (string) -- เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

ยท เบฎเบนเบšเปเบšเบšเบเบฒเบ™ (string) -- เปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบžเบฝเบ‡เปเบ•เปˆ 'tcp' เบซเบผเบท
เบญเบฐเบ™เบธเบเบฒเบ” 'http'.

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

เบŸเบฑเบ‡เบŠเบฑเบ™(applet)

ยท applet applet เบˆเบฐเป€เบ›เบฑเบ™ AppletTCP เบฅเบฐเบ”เบฑเบš เบซเบผเบท AppleTTP เบฅเบฐเบ”เบฑเบš. เบกเบฑเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”
เบ‚เบญเบ‡ applet เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. applet เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เป‰เบงเบเบ„เปˆเบฒ 'http' เบชเปเบฒเบฅเบฑเบš เบฎเบนเบšเปเบšเบšเบเบฒเบ™
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบˆเบฐเป„เบ”เป‰เบฎเบฑเบš a AppleTTP เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบฎเบนเบšเปเบšเบšเบเบฒเบ™ เบ„เปˆเบฒเปเบกเปˆเบ™ 'tcp', applet เบˆเบฐ
เป„เบ”เป‰เบฎเบฑเบš AppletTCP เบฅเบฐเบ”เบฑเบš.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž: Applets เบ›เบฐเป€เบžเบ” 'http' เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบญเบตเป‰เบ™เบˆเบฒเบ 'tcp-' เบเบปเบ”เบฅเบฐเบšเบฝเบš. เบžเบฝเบ‡เปเบ•เปˆ เป„เบ”เป‰ 'http-'
rulesets เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒ applet HTTP เบˆเบฒเบ a
เบ•เบปเบงเปเบ—เบ™เปƒเบ™เป‚เบซเบกเบ” tcp. Applets เบ›เบฐเป€เบžเบ” 'tcp' เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เป„เบ”เป‰เบˆเบฒเบเบ—เบธเบเบšเปˆเบญเบ™.

เบ—เบตเปˆเบ™เบตเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡ 'เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ' เป€เบ›เบฑเบ™
http เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡.

core.register_service("hello-world", "http", function(applet)
local response = "เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ !"
เปเบญเบฑเบšเป€เบ›เบดเป‰เบ™:set_status(200โ€‹)
applet:add_header("เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒ", string.len(เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡))
applet:add_header("เบ›เบฐเป€เบžเบ”เป€เบ™เบทเป‰เบญเบซเบฒ", "เบ‚เปเป‰เบ„เบงเบฒเบก/เบ—เบณเบกเบฐเบ”เบฒ")
applet:start_response()
appletโ€‹: เบชเบปเปˆเบ‡ (เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹)
เบชเบธเบ”เบ—เป‰เบฒเบ)
เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAproxy เปเบšเบšเบ™เบตเป‰:

เบ•เบปเบงเบขเปˆเบฒเบ‡ frontend
http-request use-service lua.hello-world

core.register_init(func)
context: เบฎเปˆเบฒเบ‡เบเบฒเบ

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบเบฑเบšโ€‹
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปƒเบ”เป†.

Arguments

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

เบŸเบฑเบ‡เบŠเบฑเบ™()
เบกเบฑเบ™เบšเปเปˆเปƒเบŠเป‰เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™, เปเบฅเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบต.

core.register_task(func)
context: body, init, task, action, sample-fetch, converter

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบงเบฝเบเบ‡เบฒเบ™เป€เบญเบเบฐเบฅเบฒเบ”. เบงเบฝเบเบ‡เบฒเบ™เปเบกเปˆเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ HAProxy เบซเบผเบฑเบ
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™
เบเบงเบ”โ€‹เบชเบธโ€‹เบ‚เบฐโ€‹เบžเบฒเบšโ€‹.

Arguments

ยท เบกเปˆเบงเบ™ (เบซเบ™เป‰เบฒเบ—เบตเปˆ) -- เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™.

เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ Lua เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบท:

เบŸเบฑเบ‡เบŠเบฑเบ™()
เบกเบฑเบ™เบšเปเปˆเปƒเบŠเป‰เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™, เปเบฅเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบต.

core.set_nice(เบ‡เบฒเบก)
context: task, action, sample-fetch, converter

เบ›เปˆเบฝเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบตเบ‚เบญเบ‡เปœเป‰เบฒเบงเบฝเบเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เบซเบผเบท เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™.

Arguments

ยท เบ‡เบฒเบก (integer) -- เบ„เปˆเบฒเบ—เบตเปˆเบ”เบต, เบกเบฑเบ™เบ•เป‰เบญเบ‡เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ -1024 เบซเบฒ 1024.

core.set_map(เบŠเบทเปˆเป„เบŸเบฅเปŒ, key, เบกเบนเบ™เบ„เปˆเบฒ)
context: init, task, action, sample-fetch, converter

เบเปเบฒเบ™เบปเบ”เบกเบนเบ™เบ„เปˆเบฒ เบกเบนเบ™เบ„เปˆเบฒ เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฐเปเบˆ เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เปƒเบ™เปเบœเบ™เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบ เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™.

Arguments

ยท เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ (string) -- เปเบœเบ™เบ—เบตเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡

ยท เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ (string) -- เบเบธเบ™เปเบˆเป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡ เบซเบผเบทเบ›เปˆเบฝเบ™เปเบ—เบ™

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡

core.sleep(int เบงเบดเบ™เบฒเบ—เบต)
context: body, init, task, action

เป„เบ”เป‰ core.sleep() เบŸเบฑเบ‡เบŠเบฑเบ™เบขเบธเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Lua เบฅเบฐเบซเบงเปˆเบฒเบ‡เบงเบดเบ™เบฒเบ—เบตเบ—เบตเปˆเบฅเบฐเบšเบธ.

Arguments

ยท เบงเบดเบ™เบฒเบ—เบต (integer) -- เบงเบดเบ™เบฒเบ—เบตเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

core.tcp()
context: init, task, action

เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบงเบฑเบ”เบ–เบธเปƒเบซเบกเปˆเบ‚เบญเบ‡ a socket เบŠเบฑเป‰เบ™เบฎเบฝเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A Socket เบฅเบฐเบ”เบฑเบš เบงเบฑเบ”เบ–เบธ

core.done(เบ‚เปเป‰เบกเบนเบ™)
context: body, init, task, action, sample-fetch, converter

Arguments

ยท เบ‚เปเป‰เบกเบนเบ™ (เปƒเบ”) -- เบเบฑเบšเบ„เบทเบ™เบšเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป‚เบ—. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฑเบš
sample-fetches เปเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡- converters.

เบ—เบฑเบ™เบ—เบตเบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Lua เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบฅเบฐเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบœเบนเป‰เป‚เบ—เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบเบฒเบ™เบ”เบถเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™ เบซเบผเบทเบเบฒเบ™เบเบฐเบ—เบณเปƒเบ”เปœเบถเปˆเบ‡ เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ (เบšเปเปˆเบชเบปเบ™เปƒเบˆ
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹)โ€‹. เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ LUA เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰
เบเบฑเบšเบ„เบทเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบซเบฒ HAProxy เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™
"เบเบฑเบšเบ„เบทเบ™".

core.yield()
context: task, action, sample-fetch, converter

เบกเบญเบšเบกเบทเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ HAProxy. เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ LUA
เปƒเบŠเป‰เป€เบงเบฅเบฒเบ›เบธเบ‡เปเบ•เปˆเบ‡เบซเบผเบฒเบ.

เบฅเบฐเบ”เบฑเบš เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ”เบถเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ HAProxy เบžเบฒเบเปƒเบ™เบซเบผเบฒเบเบญเบฑเบ™. เป€เบšเบดเปˆเบ‡ HAProxy
เป€เบญเบเบฐเบชเบฒเบ™ "configuration.txt" เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบ™เบฒเบ‡. เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เปเบกเปˆเบ™
เบšเบปเบ”เบ—เบต 7.3.2 เบซเบฒ 7.3.6.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž เบเบฒเบ™เบ”เบถเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบšเบฒเบ‡เบญเบฑเบ™เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™. เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ™เบตเป‰เป€เบกเบทเปˆเบญเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

เป€เบšเบดเปˆเบ‡ TXN.f

เป€เบšเบดเปˆเบ‡ TXN.sf

Fetches เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบš:

ยทโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹,

ยทโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เปเบงเบ”โ€‹เบฅเป‰เบญเบกโ€‹,

ยทโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™ Randomโ€‹,

ยทเบชเบฐเบ–เบฒเบ™เบฐ backend เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป€เบŠเบฑเปˆเบ™: เบˆเปเบฒเบ™เบงเบ™เบœเบนเป‰เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบ„เบดเบงเบซเบผเบทเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบ—เบตเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹,

ยท เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹เป€เบŠเบฑเปˆเบ™โ€‹เปเบซเบผเปˆเบ‡ ip เบซเบผเบทโ€‹เบˆเบธเบ”โ€‹เบซเบกเบฒเบโ€‹เบ›เบฒเบโ€‹เบ—เบฒเบ‡โ€‹,

ยทเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป„เบกเป‰,

ยท เบ‚เปเป‰โ€‹เบกเบนเบ™ SSL เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹,

ยท เบ‚เปเป‰เบกเบนเบ™ HTTP เป€เบŠเบฑเปˆเบ™: เบชเปˆเบงเบ™เบซเบปเบง เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ (txn)
-- เป€เบญเบปเบฒ IP เปเบซเบผเปˆเบ‡
local clientip = txn.f:src()
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

เบฅเบฐเบ”เบฑเบš เบ•เบปเบงเบ›เปˆเบฝเบ™()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบกเบตเบ•เบปเบงเบ›เปˆเบฝเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡ HAProxy เบžเบฒเบเปƒเบ™เบซเบผเบฒเบเบญเบฑเบ™. เป€เบšเบดเปˆเบ‡ HAProxy
เป€เบญเบเบฐเบชเบฒเบ™ "configuration.txt" เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบ™เบฒเบ‡. เบ‚เบญเบ‡เบกเบฑเบ™
เบšเบปเบ”เบ—เบต 7.3.1.

เป€เบšเบดเปˆเบ‡ TXN.c

เป€เบšเบดเปˆเบ‡ TXN.sc

Converters เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ statefull. เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบš:

ยท เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฑเบš base64โ€‹,

ยท เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ hash เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ (djb2โ€‹, crc32โ€‹, sdbmโ€‹, wt6โ€‹)โ€‹,

ยทโ€‹เบงเบฑเบ™โ€‹เบ—เบตโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹,

ยท json เบซเบ™เบตโ€‹,

ยทโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบเบฑเบ”โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฝเบšโ€‹เบ—เบฝเบšโ€‹เบชเบญเบ‡โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹,

ยท เบ›เปˆเบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เบ•โ€‹เปˆโ€‹เปโ€‹เบฒโ€‹เบซเบผเบทโ€‹เป€เบ—เบดเบ‡โ€‹,

ยทเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป„เบกเป‰.

เบฅเบฐเบ”เบฑเบš เบŠเปˆเบญเบ‡()
HAProxy เปƒเบŠเป‰เบชเบญเบ‡ buffers เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป. เบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เปƒเบŠเป‰
เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป (เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ) เปเบฅเบฐเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡ (เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เบเบฑเบšโ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹)โ€‹.

เปเบ•เปˆเบฅเบฐ buffer เบกเบตเบ‚เปเป‰เบกเบนเบ™เบชเบญเบ‡เบ›เบฐเป€เบžเบ”. เบ›เบฐเป€เบžเบ”เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบฅเปเบ–เป‰เบฒ
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡. เบชเปˆเบงเบ™เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฒเบญเบญเบเบ—เบตเปˆเบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบฅเป‰เบง. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง,
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบฒโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบ tagged เป€เบ›เบฑเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบฅเบฒเบโ€‹เบˆเปˆเบฒเบโ€‹, เปเบฅเบฐโ€‹เบชเบธเบ”โ€‹เบ—เป‰เบฒเบโ€‹เบกเบฑเบ™โ€‹
เบ–เบทเบเบชเบปเปˆเบ‡. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ a
buffer

เปเบœเบ™เบงเบฒเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบŠเบฑเป‰เบ™เบŠเปˆเบญเบ‡เบ–เบทเบเบ™เบณเปƒเบŠเป‰.

เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบž: เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบˆเบฒเบเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เปเบฅเบฐเบกเบฑเบ™เปเบกเปˆเบ™
เบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡.
[เบฎเบนเบšเบžเบฒเบš]

Channel.dup(เบŠเปˆเบญเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบต buffer เบ—เบฑเบ‡เปเบปเบ”. เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเปเบกเปˆเบ™
เป€เบญเบปเบฒเบญเบญเบเบˆเบฒเบ buffer เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบซเบกเปˆเบžเบฒเบเบซเบผเบฑเบ‡.

เบ–เป‰เบฒเบšเบฑเบŸเป€เบŸเบตเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰, เบ„เปˆเบฒ 'nil' เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ เบซเบผเบทเบšเปเปˆเบกเบต.

Channel.get(เบŠเปˆเบญเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบต buffer เบ—เบฑเบ‡เปเบปเบ”. เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบšเปเบฅเบดเป‚เบžเบ
เบˆเบฒเบ buffer เป„เบ”เป‰.

เบ–เป‰เบฒเบšเบฑเบŸเป€เบŸเบตเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰, เบ„เปˆเบฒ 'nil' เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ เบซเบผเบทเบšเปเปˆเบกเบต.

Channel.getline(เบŠเปˆเบญเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเปเบ–เบงเบ—เบณเบญเบดเบ”เบ‚เบญเบ‡ buffer. เบ‚เปเป‰เบกเบนเบ™
เบ–เบทเบเบšเปเบฅเบดเป‚เบžเบ. เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบšเปเปˆเบกเบต 'n' เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™
เบ‚เปเป‰เบกเบนเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ buffer.

เบ–เป‰เบฒเบšเบฑเบŸเป€เบŸเบตเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰, เบ„เปˆเบฒ 'nil' เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบต เบซเบผเบท nil.

Channel.set(เบŠเปˆเบญเบ‡, เบชเบฐเบ•เบฃเบดเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เปเบ—เบ™เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ buffer เป‚เบ”เบเบชเบฐเบ•เบฃเบดเบ‡. เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ
เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบ„เบฑเบ”เบฅเบญเบ, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒ -1.

เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡. เบžเบงเบเป€เบ‚เบปเบฒเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡ HAProxy
เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ buffer เบชเบฒเบกเบฒเบ”เป€เบ•เบฑเบก.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

ยท string (string) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบกเบตเบˆเบณเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบชเบณเป€เบ™เบปเบฒ เบซเบผเบท -1.

Channel.append(เบŠเปˆเบญเบ‡, เบชเบฐเบ•เบฃเบดเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบ•เปเปˆเบ—เป‰เบฒเบ string argument เบเบฑเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ buffer. เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบชเบณเป€เบ™เบปเบฒเป„เบงเป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบเบฑเบš -1.

เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡. เบžเบงเบเป€เบ‚เบปเบฒเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡ HAProxy
เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ buffer เบชเบฒเบกเบฒเบ”เป€เบ•เบฑเบก.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

ยท string (string) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบกเบตเบˆเบณเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบชเบณเป€เบ™เบปเบฒ เบซเบผเบท -1.

Channel.send(เบŠเปˆเบญเบ‡, เบชเบฐเบ•เบฃเบดเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ™เบ—เบต. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™
เบ›เบดเบ”, buffer เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด flushed เปเบฅเบฐเบชเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

ยท string (string) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบกเบตเบˆเบณเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบชเบณเป€เบ™เบปเบฒ เบซเบผเบท -1.

Channel.get_in_length(เบŠเปˆเบญเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡ buffer.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบกเบตเบˆเบณเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆ.

Channel.get_out_length(เบŠเปˆเบญเบ‡)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบชเปˆเบงเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ buffer.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบกเบตเบˆเบณเบ™เบงเบ™เป„เบšเบ•เปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆ.

Channel.forward(เบŠเปˆเบญเบ‡, int)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป‚เบญเบ™ bytes เบˆเบฒเบเบชเปˆเบงเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡ buffer เป„เบ›เบซเบฒเบชเปˆเบงเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”.

Arguments

ยท เบŠเปˆเบญเบ‡ (class_channel) -- เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰.

ยท int (integer) -- เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆ.

เบฅเบฐเบ”เบฑเบš HTTP()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ HTTP เบ—เบฑเบ‡เปเบปเบ”.

HTTP.req_get_headers(http)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบญเบฒเป€เบฃเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบซเบปเบงเบ„เบณเบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เปเบปเบ”.

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
array เบ‚เบญเบ‡ headers.

เป€เบšเบดเปˆเบ‡ HTTP.res_get_headers()

เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ array เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™:

HTTP:req_get_headers()[' '][ ] = " "

local hdr = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["เบเบญเบกเบฎเบฑเบš"][0] = "เบชเบฝเบ‡/เบžเบทเป‰เบ™เบ–เบฒเบ™ q=1"
hdr["เบเบญเบกเบฎเบฑเบš"][1] = "เบชเบฝเบ‡/*, q=0.2"
hdr["เบเบญเบกเบฎเบฑเบš"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบญเบฒเป€เบฃเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบซเบปเบงเบ„เบณเบ•เบญเบšเบ—เบฑเบ‡เปเบปเบ”.

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
array เบ‚เบญเบ‡ headers.

เป€เบšเบดเปˆเบ‡ HTTP.req_get_headers()

เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ array เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™:

HTTP:res_get_headers()[' '][ ] = " "

local hdr = HTTP:req_get_headers()
hdr["host"][0] = "www.test.com"
hdr["เบเบญเบกเบฎเบฑเบš"][0] = "เบชเบฝเบ‡/เบžเบทเป‰เบ™เบ–เบฒเบ™ q=1"
hdr["เบเบญเบกเบฎเบฑเบš"][1] = "เบชเบฝเบ‡/*, q=0.2"
hdr["เบเบญเบกเบฎเบฑเบš"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, เบŠเบทเปˆ, เบกเบนเบ™เบ„เปˆเบฒ)
เบ•เบทเปˆเบกเปƒเบชเปˆเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบซเบปเบง HTTP เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ "เบŠเบทเปˆ" เปเบฅเบฐ
เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ "เบกเบนเบ™เบ„เปˆเบฒ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒเบชเปˆเบงเบ™เบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.res_add_header()

HTTP.res_add_header(http, เบŠเบทเปˆ, เบกเบนเบ™เบ„เปˆเบฒ)
เบ•เบทเปˆเบกเปƒเบชเปˆเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบซเบปเบง HTTP เปƒเบ™เบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ "เบŠเบทเปˆ" เปเบฅเบฐ
เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ "เบกเบนเบ™เบ„เปˆเบฒ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒเบชเปˆเบงเบ™เบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.req_add_header()

HTTP.req_del_header(http, เบŠเบทเปˆ)
เป€เบญเบปเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบซเบปเบง HTTP เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบ„เบณเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ "เบŠเบทเปˆ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.res_del_header()

HTTP.res_del_header(http, เบŠเบทเปˆ)
เป€เบญเบปเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบซเบปเบง HTTP เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบ„เบณเบ•เบญเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ "เบŠเบทเปˆ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.req_del_header()

HTTP.req_set_header(http, เบŠเบทเปˆ, เบกเบนเบ™เบ„เปˆเบฒ)
เบ•เบปเบงเปเบ›เบ™เบตเป‰เบ›เปˆเบฝเบ™เปเบ—เบ™เบเบฒเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰ "เบŠเบทเปˆ", เป‚เบ”เบเบกเบตเบžเบฝเบ‡เบญเบฑเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
"เบกเบนเบ™เบ„เปˆเบฒ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒเบชเปˆเบงเบ™เบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.res_set_header()

เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบŸเบฑเบ‡เบŠเบฑเบ™ fcn(txn)
TXN.http:req_del_header("header")
TXN.http:req_add_header("header", "value")
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

HTTP.res_set_header(http, เบŠเบทเปˆ, เบกเบนเบ™เบ„เปˆเบฒ)
เบ•เบปเบงเปเบ›เบ™เบตเป‰เบ›เปˆเบฝเบ™เปเบ—เบ™เบเบฒเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰ "เบŠเบทเปˆ", เป‚เบ”เบเบกเบตเบžเบฝเบ‡เบญเบฑเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
"เบกเบนเบ™เบ„เปˆเบฒ".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒเบชเปˆเบงเบ™เบซเบปเบง.

เป€เบšเบดเปˆเบ‡ HTTP.req_rep_header()

HTTP.req_rep_header(http, เบŠเบทเปˆ, regex, เปเบ—เบ™เบ—เบตเปˆ)
เบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบ—เบธเบเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบซเบปเบง "เบŠเบทเปˆ" เบ•เบฒเบก
เบเบฑเบš "regex", เปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ "เปเบ—เบ™เบ—เบตเปˆ". เบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™
เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบˆเบธเบ‚เปเป‰เบกเบนเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบŠเบฑเปˆเบ™: 1, 2, ... เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป.

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท regex (string) -- เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด.

ยท เบ—เบปเบ”เปเบ—เบ™ (string) -- เบ„เปˆเบฒเบ—เบปเบ”เปเบ—เบ™.

เป€เบšเบดเปˆเบ‡ HTTP.res_rep_header()

HTTP.res_rep_header(http, เบŠเบทเปˆ, regex, เบชเบฐเบ•เบฃเบดเบ‡)
เบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบ—เบธเบเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบซเบปเบง "เบŠเบทเปˆ" เบ•เบฒเบก
เบเบฑเบš "regex", เปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ "เปเบ—เบ™เบ—เบตเปˆ". เบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™
เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบˆเบธเบ‚เปเป‰เบกเบนเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบŠเบฑเปˆเบ™: 1, 2, ... เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป.

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท regex (string) -- เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด.

ยท เบ—เบปเบ”เปเบ—เบ™ (string) -- เบ„เปˆเบฒเบ—เบปเบ”เปเบ—เบ™.

เป€เบšเบดเปˆเบ‡ HTTP.req_replace_header()

HTTP.req_replace_value(http, เบŠเบทเปˆ, regex, เปเบ—เบ™เบ—เบตเปˆ)
เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบš "HTTP.req_replace_header()" เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบเบปเบ‡เบเบฑเบš regex เบ•เปเปˆเบเบฑเบš
เบ—เบธเบเป†เบ„เปˆเบฒเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบชเปˆเบงเบ™เบซเบปเบง "เบŠเบทเปˆ" เปเบ—เบ™เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”
header

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท regex (string) -- เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด.

ยท เบ—เบปเบ”เปเบ—เบ™ (string) -- เบ„เปˆเบฒเบ—เบปเบ”เปเบ—เบ™.

เป€เบšเบดเปˆเบ‡ HTTP.req_replace_header()

เป€เบšเบดเปˆเบ‡ HTTP.res_replace_value()

HTTP.res_replace_value(http, เบŠเบทเปˆ, regex, เปเบ—เบ™เบ—เบตเปˆ)
เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบš "HTTP.res_replace_header()" เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบเบปเบ‡เบเบฑเบš regex เบ•เปเปˆเบเบฑเบš
เบ—เบธเบเป†เบ„เปˆเบฒเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบชเปˆเบงเบ™เบซเบปเบง "เบŠเบทเปˆ" เปเบ—เบ™เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”
header

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง.

ยท regex (string) -- เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ›เบปเบเบเบฐเบ•เบด.

ยท เบ—เบปเบ”เปเบ—เบ™ (string) -- เบ„เปˆเบฒเบ—เบปเบ”เปเบ—เบ™.

เป€เบšเบดเปˆเบ‡ HTTP.res_replace_header()

เป€เบšเบดเปˆเบ‡ HTTP.req_replace_value()

HTTP.req_set_method(http, เบงเบดเบ—เบตเบเบฒเบ™)
เบ‚เบฝเบ™เบงเบดเบ—เบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ„เบทเบ™เปƒเบซเบกเปˆเบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "เบงเบดเบ—เบตเบเบฒเบ™".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบงเบดเบ—เบตเบเบฒเบ™ (string) -- เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹.

HTTP.req_set_path(http, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡)
เบ‚เบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ„เบทเบ™เปƒเบซเบกเปˆเบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ (string) -- เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบซเบกเปˆ.

HTTP.req_set_query(http, เบชเบญเบšเบ–เบฒเบก)
เบ‚เบฝเบ™เบ„เบทเบ™ string query เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบ›เบฒเบเบปเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ„เปเบฒเบ–เบฒเบกเบ—เปเบฒเบญเบดเบ”
("?") เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "เบชเบญเบšเบ–เบฒเบก".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท query (string) -- เบ„เปเบฒเบ–เบฒเบกเปƒเบซเบกเปˆ.

HTTP.req_set_uri(http, uri)
เบ‚เบฝเบ™เบ„เบทเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป URI เบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "uri".

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบ›เบฐเป€เบžเบ” (string) -- uri เปƒเบซเบกเปˆ.

HTTP.res_set_status(http, เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš)
เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆเบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "เบฅเบฐเบซเบฑเบ”". เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบซเบ”เบœเบปเบ™
เบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ.

Arguments

ยท http (class_http) -- เบงเบฑเบ”เบ–เบธ http เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

ยท เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš (integer) -- เบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เปƒเปเปˆ.

เบฅเบฐเบ”เบฑเบš TXN()
เบŠเบฑเป‰เบ™ txn เบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ http เบซเบผเบท tcp
(เบซเบกเบฒเบเป€เบซเบ”เบเบงเปˆเบฒ tcp stream เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ tcp, เปเบ•เปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ HTTP
เปเบกเปˆเบ™เบšเปเปˆเบ„เบทเบเบฑเบ™เบเปˆเบงเบฒ tcp stream).

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบฑเบ™เปเบฅเบฐ
เบชเบปเปˆเบ‡เบ•เปเปˆเบกเบฑเบ™.

เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเปƒเบซเป‰เป‚เบ”เบเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบšเปเบฅเบดเบšเบปเบ”
เบ•เบปเบงเบขเปˆเบฒเบ‡ - เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐ เบซเบธเป‰เบ™.

TXN.c

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An Converters เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters.

TXN.sc

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An Converters เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ™เบตเป‰
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบชเบฐเป€เปเบต.

TXN.f

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches.

TXN.sf

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ™เบตเป‰
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบชเบฐเป€เปเบต.

TXN.req

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An Channel เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™เบŠเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบš buffer เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป.

TXN.res

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An Channel เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบฅเบฐเบ”เบฑเบšเบŠเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบš buffer เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡.

TXN.http

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
An HTTP เบฅเบฐเบ”เบฑเบš.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ HTTP. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ•เบปเบงเปเบ—เบ™เบกเบต
"เป‚เบซเบกเบ” http" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

TXN.log(TXN, เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹, เบ‚เปเป‰เบ„เบงเบฒเบก)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบšเบฑเบ™เบ—เบถเบ. เบšเบฑเบ™เบ—เบถเบเบ–เบทเบเบชเบปเปˆเบ‡, เบญเบตเบ‡เบ•เบฒเบก HAProxy
เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ syslog เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบขเบนเปˆเปƒเบ™
stderr เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท loglevel (integer) -- เบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบก. เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹
เบ•เบปเบงเป€เบฅเบเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เบซเบฒ 7.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (เบ„เปเบฒเบ™เบดเบเบฒเบกเบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบ)

เป€เบšเบดเปˆเบ‡ TXN.deflog

เป€เบšเบดเปˆเบ‡ TXN.เบ”เบตเบšเบฑเบ

เป€เบšเบดเปˆเบ‡ TXN.เบ‚เปเป‰เบกเบนเบ™

เป€เบšเบดเปˆเบ‡ TXN.เบ„เบณเป€เบ•เบทเบญเบ™

เป€เบšเบดเปˆเบ‡ TXN.เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™

TXN.deflog(TXN, เบ‚เปเป‰เบ„เบงเบฒเบก)
เบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบกเบตเบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบžเบฃเบฑเบญเบเบŠเบตเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš
เบ—เบธเบฅเบฐ เบเบณ.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ TXN.log

TXN.Debug(txn, เบ‚เปเป‰เบ„เบงเบฒเบก)

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ TXN.log

เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš:

function Debug(txn, msg)
TXN.log(txn, core.debug, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

TXN.Info(txn, เบ‚เปเป‰เบ„เบงเบฒเบก)

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ TXN.log

function Debug(txn, msg)
TXN.log(txn, core.info, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

TXN.เบ„เบณเป€เบ•เบทเบญเบ™(txn, เบ‚เปเป‰เบ„เบงเบฒเบก)

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ TXN.log

function Debug(txn, msg)
TXN.log(txn, core.warning, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

TXN.Alert(txn, เบ‚เปเป‰เบ„เบงเบฒเบก)

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท msg (string) -- เป€เบ™เบทเป‰เบญเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เป€เบšเบดเปˆเบ‡ TXN.log

function Debug(txn, msg)
TXN.log(txn, core.alert, msg)
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

TXN.get_priv(txn)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™ Lua เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™ (เบเบฑเบš TXN.set_priv())
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰, เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบ„เปˆเบฒ nil.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบ‚เปเป‰โ€‹เบกเบนเบ™ opaque เป€เบเบฑเบšโ€‹เป„เบงเป‰โ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ™เบตเป‰โ€‹, เบซเบผเบทโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เบกเบตโ€‹.

TXN.set_priv(txn, เบ‚เปเป‰เบกเบนเบ™)
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ HAProxy เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เปเบ—เบ™เบ—เบตเปˆเป€เบเบปเปˆเบฒ
เบ‚เปเป‰เบกเบนเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท เบ‚เปเป‰เบกเบนเบ™ (opaque) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ.

TXN.set_var(TXN, เบกเบต, เบกเบนเบ™เบ„เปˆเบฒ)
เบ›เปˆเบฝเบ™เบ›เบฐเป€เบžเบ” Lua เปƒเบ™เบ›เบฐเป€เบžเบ” HAProxy เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เป„เบงเป‰เปƒเบ™เบ•เบปเบงเปเบ› .

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท var (string) -- เบŠเบทเปˆเบ•เบปเบงเปเบ›เบ•เบฒเบกเบ•เบปเบงเปเบ› HAProxy
syntax

ยท เบกเบนเบ™เบ„เปˆเบฒ (opaque) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ•เบปเบงเปเบ›.

TXN.get_var(TXN, var)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ•เบปเบงเบ›เปˆเบฝเบ™เบ•เบปเบงเปเบ› เปƒเบ™เบ›เบฐเป€เบžเบ” Lua.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท var (string) -- เบŠเบทเปˆเบ•เบปเบงเปเบ›เบ•เบฒเบกเบ•เบปเบงเปเบ› HAProxy
syntax

TXN.get_headers(txn)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบญเบฒเป€เบฃเบ‚เบญเบ‡เบชเปˆเบงเบ™เบซเบปเบง.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
array เบ‚เบญเบ‡ headers เป€เบ›เบฑเบ™.

TXN.done(txn)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบขเบธเบ”เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเป€เบŠเบ”เบŠเบฑเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.
เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ–เบทเบเบเบงเบ”เบžเบปเบšเบซเบผเบทเป€เบžเบทเปˆเบญเบขเบธเบ”เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบžเบฒเบเบซเบผเบฑเบ‡
เบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒ (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡).

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

TXN.set_loglevel(txn, เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹)
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. "loglevel" เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เปเบฅเบฐ 7.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท loglevel (integer) -- เบฅเบฐเบ”เบฑเบšเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ•เบปเบงเปเบ›เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™

เป€เบšเบดเปˆเบ‡ เบซเบผเบฑเบ.

TXN.set_tos(txn, เบ–เบดเป‰เบก)
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบžเบฒเบเบชเบฐเบซเบ™เบฒเบก TOS เบซเบผเบท DSCP เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเป„เบ›เบซเบฒ
เบ„เปˆเบฒเบœเปˆเบฒเบ™ "tos" เปƒเบ™เป€เบงเบ—เบตเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบตเป‰.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท tos (integer) -- TOS os DSCP เปƒเบซเบกเปˆ.

TXN.set_mark(txn, เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ)
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” Netfilter MARK เปƒเบ™เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒ
เบœเปˆเบฒเบ™ "เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ" เปƒเบ™เป€เบงเบ—เบตเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.

Arguments

ยท txn (class_txn) -- class txn object เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™.

ยท เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ (integer) -- เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ.

เบฅเบฐเบ”เบฑเบš เป€เบ•เบปเป‰เบฒเบชเบฝเบš()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™ Lua Socket. เบžเบฝเบ‡เปเบ•เปˆ 'เบฅเบนเบเบ„เป‰เบฒ'
เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™ Lua Socket:

http://w3.impa.br/~diego/software/luasocket/tcp.html

เป€เบ•เบปเป‰เบฒเบฎเบฑเบš.เบ›เบดเบ”(socket)
เบ›เบดเบ”เบงเบฑเบ”เบ–เบธ TCP. เป€เบ•เบปเป‰เบฒเบฎเบฑเบšเบžเบฒเบเปƒเบ™เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบงเบฑเบ”เบ–เบธเปเบกเปˆเบ™เบ›เบดเบ”เปเบฅเบฐเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ–เบทเบโ€‹เบœเบนเบโ€‹เบกเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เบกเบตโ€‹เปƒเบซเป‰โ€‹เบเบฑเบšโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบญเบทเปˆเบ™เป†โ€‹. เบšเปเปˆ
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบก (เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เป‚เบ—โ€‹เบซเบฒโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบเป‰โ€‹เบŠเบดเบ”โ€‹) เปเบกเปˆเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบ™ a
เบ›เบดเบ” Socket.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

เบซเบกเบฒเบเป€เบซเบ”: เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เป€เบ•เบปเป‰เบฒเบชเบฝเบšเบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบงเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ, เปƒเบ™
เบซเบผเบฒเบเบฅเบฐเบšเบปเบš, เปเบ•เปˆเบฅเบฐเบŠเบฑเบญเบเป€เบเบฑเบ”เปƒเบŠเป‰เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเป„เบŸเบฅเปŒ, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบˆเปเบฒเบเบฑเบ”
เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™. เบชเบดเปˆเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบเบฑเบšโ€‹เบ‚เบตเป‰โ€‹เป€เบซเบเบทเป‰เบญโ€‹เปเบกเปˆเบ™โ€‹เบ›เบดเบ”โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ—เปเบฒโ€‹เบฅเบฒเบโ€‹,
เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ.

Socket.connect(เป€เบ•เบปเป‰เบฒเบฎเบฑเบš, เบ—เบตเปˆเบขเบนเปˆ[, เบ—เปˆเบฒเป€เบฎเบทเบญ])
เบžเบฐเบเบฒเบเบฒเบกเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบงเบฑเบ”เบ–เบธเบŠเบฑเบญเบเป€เบเบฑเบ”เบเบฑเบšเปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฒเบ‡เป„เบ.

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒ nil เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบ”เป‰เบงเบโ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป„เบ”เป‰โ€‹.
เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒ 1โ€‹.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

ยท เบ—เบตเปˆเบขเบนเปˆ (string) -- เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆ IP เบซเบผเบทเบŠเบทเปˆเป€เบˆเบปเป‰เบฒเบžเบฒเบš. เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš
เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

ยท port (integer) -- เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเปƒเบ™เป„เบฅเบเบฐ [1..64K].

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
1 เบซเบผเบท nil.

เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบขเบนเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ () เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš
เบเบฐเปเบชเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ TCP. syntax เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ simpleipv4 เบซเบผเบท ipv6 เปเบกเปˆเบ™
เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบงเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบญเบ”.

เบฎเบนเบšเปเบšเบšเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเปเบกเปˆเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบŠเบฑเบญเบเป€เบเบฑเบ”เป€เบŠเบฑเปˆเบ™ "/socket/path", เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบเบฑเบšเป€เบ•เบปเป‰เบฒเบฎเบฑเบš. namespaces abstract เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ "abns@", เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ
filedescriotr เบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ "fd@". เบ„เบณเบ™เบณเปœเป‰เบฒ "ipv4@", "ipv6@"
เปเบฅเบฐ "unix@" เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบžเบญเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เปƒเบ™เบชเบฐเบ•เบฃเบดเบ‡. syntax
"127.0.0.1:1234" เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ™เบตเป‰, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ port เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

Socket.connect_ssl(เบŠเบฑเบญเบเป€เบเบฑเบ”, เบ—เบตเปˆเบขเบนเปˆ, เบžเบญเบ”)
เบžเบถเบ”เบ•เบดเบเปเบฒเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบŠเปˆเบญเบ‡เบชเบฝเบšเบŸเบฑเบ‡เบŠเบฑเบ™: เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปเบ•เปˆเปƒเบŠเป‰ SSL.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
1 เบซเบผเบท nil.

Socket.getpeername(socket)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ”เป‰เบฒเบ™เป„เบเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบฅเบนเบเบ‚เปˆเบฒเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เบ„เบนเปˆ, เบ•เบฒเบกเบ”เป‰เบงเบเปเบฒเบเป€เบฅเบเบœเบญเบ”เบ™เบฑเป‰เบ™
peer เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒ nilโ€‹.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบŠเบตเบšเป€เบงเบต.

Socket.getsockname(เบŠเบฑเบญเบเป€เบเบฑเบ”)
เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบขเบนเปˆเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบงเบฑเบ”เบ–เบธ.

เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบกเบตเบžเบญเบ”. เปƒเบ™
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒ nilโ€‹.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบฅเบนเบเบ„เป‰เบฒ.

Socket.receive(เป€เบ•เบปเป‰เบฒเบฎเบฑเบš[, เบฎเบนเบšเปเบšเบš[, เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ]])
เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบงเบฑเบ”เบ–เบธเบฅเบนเบเบ„เป‰เบฒ, เบญเบตเบ‡เบ•เบฒเบกเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธ. เบฎเบนเบšเปเบšเบš
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบฎเบนเบšเปเบšเบš I/O เป„เบŸเบฅเปŒ Lua, เปเบฅเบฐเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เป€เบฅเบตเบโ€‹.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

ยท เบฎเบนเบšเปเบšเบš (string|เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก) -- เบญเบฐเบ—เบดเบšเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰).

ยท เบ„เบณ เบ™เบณ เปœเป‰เบฒ (string) -- เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ™เบณเปœเป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบกเบฒ.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ เบซเบผเบท nil.

เบฎเบนเบšเปเบšเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เปœเบถเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

ยท

`*a`: reads เบˆเบฒเบ เป„เบ”เป‰ socket เบˆเบปเบ™เบเปˆเบงเบฒ เป„เบ”เป‰ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ is เบ›เบดเบ”. No
เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™;

ยท

`*l`: reads a เบญเบญเบ™เป„เบฅเบ™เปŒ of เบ‚เปเป‰เบ„เบงเบฒเบก เบˆเบฒเบ เป„เบ”เป‰ เป€เบ•เบปเป‰เบฒเบฎเบฑเบš. เป„เบ”เป‰ เบญเบญเบ™เป„เบฅเบ™เปŒ is เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡ by a
เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ LF (ASCII 10), เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปˆเบญเบ™เป‚เบ”เบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ CR (ASCII 13).
เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ CR เปเบฅเบฐ LF เบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เปเบ–เบงเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™. เปƒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡,
เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ CR เบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเป‚เบ”เบเบฎเบนเบšเปเบšเบš. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

ยท

เบˆเปเบฒเบ™เบงเบ™: เบชเบฒเป€เบซเบ” เป„เบ”เป‰ เบงเบดเบ—เบตเบเบฒเบ™ to เบญเปˆเบฒเบ™ a เบฅเบฐเบšเบธ เบˆเปเบฒเบ™เบงเบ™ of เป„เบš เบˆเบฒเบ เป„เบ”เป‰
เป€เบ•เบปเป‰เบฒเบฎเบฑเบš. เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ concatenated เบเบฑเบšเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒ.

ยท เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ: เบ–เป‰เบฒเบฎเบนเบšเปเบšเบšเบ–เบทเบเบ›เบฐเป„เบงเป‰เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ *l.

เบ–เป‰เบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เป„เบ”เป‰โ€‹
เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™ nil เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ string 'เบ›เบดเบ”' เปƒเบ™
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ›เบดเบ”โ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบชเบฒเบโ€‹เบชเบปเปˆเบ‡โ€‹เบซเบผเบทโ€‹เบชเบฒเบโ€‹
'เบซเบกเบปเบ”เป€เบงเบฅเบฒ' เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
เบ‚เปเป‰เบ„เบงเบฒเบก, เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ.

เบซเบกเบฒเบเป€เบซเบ”เบชเปเบฒเบ„เบฑเบ™: เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบฎเบธเบ™เปเบฎเบ‡. เบกเบฑเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเบผเบฒเบ
เบฎเบนเบšโ€‹เปเบšเบš (เปเบ•เปˆโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เป€เบ„เบตเบโ€‹เป€เบซเบฑเบ™โ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ™เบตเป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹) เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบญเบตเบโ€‹เปเบฅเป‰เบงโ€‹.
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเบฒเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเบฑเบšเบ„เบทเบ™เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบ™เบตเป‰
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบเป„เบ”เป‰เบฅเบฐเป€เบกเบตเบ”เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบ„เบงเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบกเบฑเบ™เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบทเบเบฑเบ™.

Socket.send(เป€เบ•เบปเป‰เบฒเบฎเบฑเบš, เบ‚เปเป‰เบกเบนเบ™[, เป€เบฅเบตเปˆเบก[, เบชเบดเป‰เบ™เบชเบธเบ”]])
เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™เบงเบฑเบ”เบ–เบธเบฅเบนเบเบ„เป‰เบฒ.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

ยท เบ‚เปเป‰เบกเบนเบ™ (string) -- เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›.

ยท เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (integer) -- เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ buffer เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐ
เบ–เบทเบเบชเบปเปˆเบ‡.

ยท เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ (integer) -- เบ•เปเบฒเปเปœเปˆเบ‡เบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™ buffer เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เบชเบปเปˆเบ‡เปเบฅเป‰เบง.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ i เปเบฅเบฐ j เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบš
เบŸเบฑเบ‡เบŠเบฑเบ™ string.sub Lua เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบฅเบทเบญเบเบชเบฐเบ•เบฃเบดเบ‡เบเปˆเบญเบเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›.

เบ–เป‰เบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡ byte เบชเบธเบ”เบ—เป‰เบฒเบเบžเบฒเบเปƒเบ™ [เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบชเบดเป‰เบ™เบชเบธเบ”]
เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบปเปˆเบ‡โ€‹เป„เบ›โ€‹. เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒ, เบ–เป‰เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1 เบซเบผเบทเบšเปเปˆเบกเบต, เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡ bytes เบชเบปเปˆเบ‡โ€‹. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบกเบฒ nilโ€‹, เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เป‚เบ”เบโ€‹
เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เป‚เบ”เบโ€‹เบ”เบฑเบ”โ€‹เบŠเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡ byte เบชเบธเบ”โ€‹เบ—เป‰เบฒเบโ€‹เบžเบฒเบโ€‹เปƒเบ™ [เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹, เบ—เป‰เบฒเบโ€‹] เบงเปˆเบฒโ€‹
เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบปเปˆเบ‡โ€‹เป„เบ›โ€‹เปเบฅเป‰เบง. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบˆเบฒเบ byte เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰. เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” 'เบ›เบดเบ”' เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบ›เบดเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡
เป„เบ”เป‰เบชเปเบฒเป€เบฅเบฑเบ”เบซเบผเบท string 'เบซเบกเบปเบ”เป€เบงเบฅเบฒ' เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰ buffedโ€‹. เบชเปเบฒเบฅเบฑเบšเบชเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบกเบฑเบ™เปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเป„เบ›เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐ concatenate
เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบขเบนเปˆเปƒเบ™ Lua (เบเบฑเบš '..' เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™) เปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบซเบ™เบถเปˆเบ‡เป‚เบ—เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡.

Socket.setoption(เป€เบ•เบปเป‰เบฒเบฎเบฑเบš, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ[, เบกเบนเบ™เบ„เปˆเบฒ])
เบžเบฝเบ‡เปเบ•เปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, cal เบ™เบตเป‰เบšเปเปˆเบกเบตเบซเบเบฑเบ‡.

socket.settimeout(เป€เบ•เบปเป‰เบฒเบฎเบฑเบš, เบ„เปˆเบฒ[, เป‚เปเบ”])
เบ›เปˆเบฝเบ™เบ„เปˆเบฒเบเบฒเบ™เปเบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ I/O เบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบ–เบทเบเบ›เบดเบ”เบเบฑเป‰เบ™. เบ™เบฑเป‰เบ™
เปเบกเปˆเบ™, เบเบฒเบ™เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡, เบฎเบฑเบš, เปเบฅเบฐเบเบญเบกเบฎเบฑเบšเบˆเบฐเบ›เบดเบ”เบเบฑเป‰เบ™เบšเปเปˆเบกเบตเบเปเบฒเบ™เบปเบ”,
เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบงเบดเบ—เบตเบเบฒเบ™ settimeout เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™
เบ‚เบญเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเบงเบดเบ—เบตเบเบฒเบ™ I / O เบชเบฒเบกเบฒเบ”เบ•เบฑเบ™. เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบซเบกเบปเบ”เป€เบงเบฅเบฒเป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบ›, เบœเบปเบ™เบเบฐเบ—เบปเบš
เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเป‰เป€เบ–เบดเบ‡เปเบฅเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เป„เบฅเบเบฐเป€เบงเบฅเบฒเบฅเปเบ–เป‰เบฒเปเบกเปˆเบ™เบฅเบฐเบšเบธเป€เบ›เบฑเบ™เบ„เปˆเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™, เป€เบ›เบฑเบ™เบงเบดเบ™เบฒเบ—เบต.

เป‚เบซเบกเบ”เป€เบงเบฅเบฒเบซเบกเบปเบ”เป€เบงเบฅเบฒเปเบกเปˆเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” bot, เบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบžเบฝเบ‡เปเบ•เปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง
เป€เบงเบฅเบฒเบฅเปเบ–เป‰เบฒเปƒเบซเป‰เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบชเบปเปˆเบ‡ buffer เบžเบฒเบเปƒเบ™เบซเบผเบทเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™.

Arguments

ยท socket (class_socket) -- เปเบกเปˆเบ™ Socket เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™.

ยท เบกเบนเบ™เบ„เปˆเบฒ (integer) -- เบ„เปˆเบฒเป€เบงเบฅเบฒเปเบปเบ”เป€เบงเบฅเบฒ.

เบฅเบฐเบ”เบฑเบš เปเบœเบ™เบ—เบตเปˆ()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบŠเบญเบเบซเบฒเบšเบฒเบ‡เบญเบฑเบ™เปƒเบ™เปเบœเบ™เบ—เบตเปˆ HAProxy. เปเบœเบ™เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เปเบเป‰เป„เบ‚เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เปเบฅเปˆเบ™เบœเปˆเบฒเบ™เบŠเบฑเบญเบเป€เบเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ HAProxy.

default = "usa"

-- เบชเป‰เบฒเบ‡ เปเบฅเบฐเป‚เบซเบผเบ”เปเบœเบ™เบ—เบตเปˆ
geo = Map.new("geo.map", Map.ip);

-- เบชเป‰เบฒเบ‡ fetch เปƒเบซเบกเปˆเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ›เบฐเป€เบ—เบ”เบœเบนเป‰เปƒเบŠเป‰
core.register_fetches("เบ›เบฐเป€เบ—เบ”", เบŸเบฑเบ‡เบŠเบฑเบ™(txn)
src เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™;
เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™;

src = txn.f:fhdr("x-forwarded-for");
เบ–เป‰เบฒ (src == nil) เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
src = txn.f:src()
เบ–เป‰เบฒ (src == nil) เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบเบฑเบšเบ„เบทเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™;
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

-- เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒ
loc = geo:lookup(src);

เบ–เป‰เบฒ (loc == nil) เปเบฅเป‰เบง
เบเบฑเบšเบ„เบทเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™;
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

เบเบฑเบšเบ„เบทเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ;
เบชเบดเป‰เบ™เบชเบธเบ”);

Map.int
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.ip เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.str
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.beg
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.sub
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.dir
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.dom
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.end
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.reg
เป€เบšเบดเปˆเบ‡เป„เบŸเบฅเปŒ HAProxy configuration.txt, เบšเบปเบ” "เบเบฒเบ™เปƒเบŠเป‰ ACLs เปเบฅเบฐเบเบฒเบ™เบ”เบถเบ‡เป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡"
เบšเบปเบ”เบเปˆเบญเบ "เบžเบทเป‰เบ™เบ–เบฒเบ™ ACL" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰.

Map.new(เป„เบŸเบฅเปŒ, เบงเบดเบ—เบตเบเบฒเบ™)
เบชเป‰เบฒเบ‡ เปเบฅเบฐเป‚เบซเบผเบ”เปเบœเบ™เบ—เบตเปˆ.

Arguments

ยท เป€เบญเบเบฐเบชเบฒเบ™ (string) -- เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเปเบœเบ™เบ—เบตเปˆ.

ยท เบงเบดเบ—เบตเบเบฒเบ™ (integer) -- เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเปเบœเบ™เบ—เบตเปˆ. เป€เบšเบดเปˆเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ
เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบœเบ™เบ—เบตเปˆ.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบงเบฑเบ”เบ–เบธเปเบœเบ™เบ—เบตเปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™.

เป€เบšเบดเปˆเบ‡ เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ‚เบญเบ‡โ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹.

Map.lookup(เปเบœเบ™เบ—เบตเปˆ, str)
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เปเบœเบ™เบ—เบตเปˆ.

Arguments

ยท เปเบœเบ™เบ—เบตเปˆ (class_map) -- เปเบกเปˆเบ™ class Map object.

ยท str (string) -- เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฐเปเบˆ.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš เบซเบผเบท nil เบ–เป‰เบฒเบšเปเปˆเบเบปเบ‡เบเบฑเบ™.

Map.slookup(เปเบœเบ™เบ—เบตเปˆ, str)
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เปเบœเบ™เบ—เบตเปˆ.

Arguments

ยท เปเบœเบ™เบ—เบตเปˆ (class_map) -- เปเบกเปˆเบ™ class Map object.

ยท str (string) -- เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฐเปเบˆ.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš เบซเบผเบทเบชเบฐเบ•เบฃเบดเบ‡เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ เบ–เป‰เบฒเบšเปเปˆเบเบปเบ‡เบเบฑเบ™.

เบฅเบฐเบ”เบฑเบš AppleTTP()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เบเบฑเบšเปเบญเบฑเบšเป€เบ›เบดเป‰เบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เปเบ” 'http'. http applet เบชเบฒเบกเบฒเบ”
เป„เบ”เป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบš core.register_service() เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš
เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป http เบ„เบทเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡เบ‚เบญเบ‡ HAProxy.

เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ:

core.register_service("hello-world", "http", function(applet)
local response = "เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ !"
เปเบญเบฑเบšเป€เบ›เบดเป‰เบ™:set_status(200โ€‹)
applet:add_header("เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒ", string.len(เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡))
applet:add_header("เบ›เบฐเป€เบžเบ”เป€เบ™เบทเป‰เบญเบซเบฒ", "เบ‚เปเป‰เบ„เบงเบฒเบก/เบ—เบณเบกเบฐเบ”เบฒ")
applet:start_response()
appletโ€‹: เบชเบปเปˆเบ‡ (เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹)
เบชเบธเบ”เบ—เป‰เบฒเบ)

AppleTTP.c

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A Converters เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters.

AppleTTP.sc

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A Converters เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ™เบตเป‰
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบชเบฐเป€เปเบต.

AppletTHTP.f

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” applet
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบธเบฅเบฐเบเปเบฒ HTTP เบซเบผเบฑเบ HAProxy เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡
fecthes เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปˆเบฒ HTTP เบ‚เบถเป‰เบ™เบเบฑเบš (hdr, path, ... ) เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰.

AppleTTP.sf

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ™เบตเป‰
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบชเบฐเป€เปเบต. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” applet เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ a
เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ HTTP เบซเบผเบฑเบ HAProxy เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš HTTP
เบ„เปˆเบฒเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš (hdr, path, ...) เบšเปเปˆเบกเบตเปƒเบซเป‰.

AppletTP.method

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
string

เบงเบดเบ—เบตเบเบฒเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™ HTTP.

AppletTP.version

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
string

เบชเบฐเบšเบฑเบš attribute, เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบชเบฐเบšเบฑเบšเบฎเป‰เบญเบ‡เบ‚เป HTTP.

AppletTP.path

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
string

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP.

AppletTP.qs

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
string

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ qs เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบชเบฒเบเบ„เบณเบฎเป‰เบญเบ‡เบ‚เป HTTP.

AppletTP.length

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
integer

เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡ HTTP.

AppletTP.headers

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
array

เบชเปˆเบงเบ™เบซเบปเบงเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบญเบฒเป€เบฃเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบซเบปเบง HTTP. เบชเปˆเบงเบ™เบซเบปเบง
เบŠเบทเปˆเปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบ. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบŠเบทเปˆเบซเบปเบงเบชเบฒเบกเบฒเบ”เบžเบปเบšเบซเบผเบฒเบเบเปˆเบงเบฒ
เป€เบกเบทเปˆเบญเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เบกเบนเบ™เบ„เปˆเบฒเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบตเบ”เป‰เบงเบ 0 เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ”เบฑเบ”เบชเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”. เบญเบฒเป€เบฃ
เบกเบตเปเบšเบšเบŸเบญเบกเบ™เบตเป‰:

AppletTP.headers[' '][ ] = " "

AppletHTTP.headers["host"][0] = "www.test.com"
AppletHTTP.headers["เบเบญเบกเบฎเบฑเบš"][0] = "เบชเบฝเบ‡/เบžเบทเป‰เบ™เบ–เบฒเบ™ q=1"
AppletHTTP.headers["เบเบญเบกเบฎเบฑเบš"][1] = "เบชเบฝเบ‡/*, q=0.2"
AppletHTTP.headers["เบเบญเบกเบฎเบฑเบš"][2] = "*/*, q=0.1"

AppletTP.headers
เบ›เบฐเบเบญเบšเบกเบตเบญเบฒเป€เบฃเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบซเบปเบงเบ„เบณเบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เปเบปเบ”.

AppletTHTP.set_status(applet, เบฅเบฐเบซเบฑเบ”)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐ HTTP เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™เบกเบฒเบˆเบฒเบ
100 เป€เบ–เบดเบ‡ 599.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

ยท เบฅเบฐเบซเบฑเบ” (integer) -- เบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒ.

AppletTHTP.add_header(applet, เบŠเบทเปˆ, เบกเบนเบ™เบ„เปˆเบฒ)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เป€เบžเบตเปˆเบก header เปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบŠเปเป‰เบฒเบเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบซเบเปเป‰เบฅเบปเบ‡.
เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹ เบ„เบงเบฒเบกเบเบฒเบงเป€เบ™เบทเป‰เบญเปƒเบ™ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบเบฒเบงเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™
เบšเปเปˆเบกเบตเบขเบนเปˆ, เบ เบเบฒเบ™เป‚เบญเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”: เป€เบ›เบฑเบ™เบ•เปˆเบญเบ™ เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ
AppleTTP:send() เบเบฒเบโ€‹เป€เบ›เบฑเบ™ chunk.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

ยท เบŠเบทเปˆ (string) -- เบŠเบทเปˆเบซเบปเบง

ยท เบกเบนเบ™เบ„เปˆเบฒ (string) -- เบ„เปˆเบฒ header

AppletHTTP.start_response(applet)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ HTTP เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบฅเบฐเบชเบปเปˆเบ‡
เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบก headers เปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡; เบžเบงเบเป€เบฎเบปเบฒ
เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ AppleTTP:send() เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ AppleTTP:start_response() เบšเปเปˆโ€‹เปเบกเปˆเบ™
เป€เบญเบตเป‰เบ™เบงเปˆเบฒ.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

AppletTHTP.getline(applet)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ™เบถเปˆเบ‡เปเบ–เบงเบˆเบฒเบเป€เบ™เบทเป‰เบญเปƒเบ™ http. เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™
เบเบฑเบšเบ„เบทเบ™เบกเบฒเบšเปเปˆเบกเบต '\n' เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบกเบฑเบ™
เบเปˆเบญเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบŠเปˆเบญเบเปเบ™เปˆ. เบชเบฐเบ•เบฃเบดเบ‡เบชเบฒเบกเบฒเบ”เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเป„เบ”เป‰เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ›เบฎเบญเบ”เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบเบฐเปเบช.

AppletHTTP.receive(applet[, เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹])
เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบฎเปˆเบฒเบ‡เบเบฒเบ HTTP, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธ เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบ‚เบฐเบซเบ™เบฒเบ” is
เบซเบฒเบเป„เบ›, เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบญเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบชเบฐเบ•เบฃเบตเบกเบˆเบปเบ™เบˆเบปเบš. เบ–เป‰เบฒ
เป„เบ”เป‰ เบ‚เบฐเบซเบ™เบฒเบ” เปเบกเปˆเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒเบ•เบปเบงเบ‚เบญเบ‡ http, เบกเบฑเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆ avalaible.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

ยท เบ‚เบฐเบซเบ™เบฒเบ” (integer) -- เบ‚เบฐเปœเบฒเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเป€เบซเบกเบตเบเบฑเบšเบ„เบทเบ™ string, string เบชเบฒเบกเบฒเบ”เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปเบกเปˆเบ™ connexion เบ›เบดเบ”.

AppletTHTP.send(applet, เบ‚เปเป‰เบ„เบงเบฒเบก)
เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก msg เบขเบนเปˆเปƒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป http.

Arguments

ยท applet (class_AppletHTTP) -- เบญเบฑเบ™ AppleTTP เบฅเบฐเบ”เบฑเบš

ยท msg (string) -- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡.

เบฅเบฐเบ”เบฑเบš AppletTCP()
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เบเบฑเบšเปเบญเบฑเบšเป€เบ›เบดเป‰เบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เปเบ” 'tcp'. tcp applet เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบš core.register_service() เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡
tcp stream เบ„เบทเป€เบŠเบตเบšเป€เบงเบตเบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡เบ‚เบญเบ‡ HAProxy.

AppletTCP.c

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A Converters เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters.

AppletTCP.sc

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A Converters เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธเบ›เบฐเป€เบžเบ” Converters. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ™เบตเป‰
เบ•เบญเบšเบชเบฐเบ•เบฃเบดเบ‡เบชเบฐเป€เปเบต.

AppletTCP.f

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches.

AppletTCP.sf

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
A เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ เบฅเบฐเบ”เบฑเบš

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰เบกเบตเบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™ Fetches.

AppletTCP.getline(applet)
เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบตเบ™เบถเปˆเบ‡เปเบ–เบงเบˆเบฒเบเบเบฐเปเบช. เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™
เบเบฑเบšเบ„เบทเบ™เบกเบฒเบšเปเปˆเบกเบต '\n' เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบกเบฑเบ™
เบเปˆเบญเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”.

Arguments

ยท applet (class_AppletTCP) -- เบญเบฑเบ™ AppletTCP เบฅเบฐเบ”เบฑเบš

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบŠเปˆเบญเบเปเบ™เปˆ. เบชเบฐเบ•เบฃเบดเบ‡เบชเบฒเบกเบฒเบ”เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเป„เบ”เป‰เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ›เบฎเบญเบ”เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบเบฐเปเบช.

AppletTCP.receive(applet[, เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹])
เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบเบฐเปเบช TCP, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธ เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบ‚เบฐเบซเบ™เบฒเบ”
เบซเบฒเบเป„เบ›, เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบญเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบˆเบปเบ™เบเปˆเบงเบฒเบชเบดเป‰เบ™เบชเบธเบ”.

Arguments

ยท applet (class_AppletTCP) -- เบญเบฑเบ™ AppletTCP เบฅเบฐเบ”เบฑเบš

ยท เบ‚เบฐเบซเบ™เบฒเบ” (integer) -- เบ‚เบฐเปœเบฒเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบชเบฐเป€เบซเบกเบตเบเบฑเบšเบ„เบทเบ™ string, string เบชเบฒเบกเบฒเบ”เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปเบกเปˆเบ™ connexion เบ›เบดเบ”.

AppletTCP.send(appletmsg)
เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เบเบฐเปเบช.

Arguments

ยท applet (class_AppletTCP) -- เบญเบฑเบ™ AppletTCP เบฅเบฐเบ”เบฑเบš

ยท msg (string) -- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡.

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” lua เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เบ—เบตเปˆเบ™เบตเป‰:

ยท https://lua-toolbox.com/

เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡ Redisโ€‹:

ยท https://github.com/nrk/redis-lua

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Redis เบเบฑเบš HAProxy. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบ•เปˆเบฅเบฐเบเบฒเบ™เป‚เบ—
เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เปƒเบ”เป†เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบดเป‰เบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ socket เบฅเบปเป‰เบกเป€เบซเบฅเบง.

-- เป‚เบซเบผเบ”เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” redis
local redis = require("redis");

เบŸเบฑเบ‡เบŠเบฑเบ™ do_something(txn)

-- เบชเป‰เบฒเบ‡ เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบŠเบฑเบญเบเป€เบเบฑเบ” tcp เปƒเปเปˆ
tcp เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ = core.tcp();
tcp:เปเบปเบ”เป€เบงเบฅเบฒ(1)
tcp:connect("127.0.0.1", 6379);

-- เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” redis เบเบฑเบšเบŠเบฑเบญเบเป€เบเบฑเบ”เปƒเปเปˆเบ™เบตเป‰
local client = redis.connect({socket=tcp});
เบฅเบนเบเบ„เป‰เบฒ:ping();

เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ

OpenSSL:

ยท http://mkottman.github.io/luacrypto/index.html

ยท https://github.com/brunoos/luasec/wiki

เปƒเบŠเป‰ haproxy-lua เบญเบญเบ™เป„เบฅเบ™เปŒเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

  • 1
    SWIG
    SWIG
    SWIG เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบญเบšเปเบง
    เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ C เปเบฅเบฐ
    C ++ เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบฅเบฒเบเบซเบฅเบฒเบเบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡
    เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก. SWIG เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš
    เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” SWIG
  • 2
    WooCommerce Nextjs React Theme
    WooCommerce Nextjs React Theme
    React WooCommerce เบซเบปเบงเบ‚เปเป‰, เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ
    JS เบ•เปเปˆเป„เบ›, Webpack, Babel, Node, เปเบฅเบฐ
    เบ”เปˆเบงเบ™, เปƒเบŠเป‰ GraphQL เปเบฅเบฐ Apollo
    เบฅเบนเบโ€‹เบ„เป‰เบฒ. เบฎเป‰เบฒเบ™ WooCommerce เปƒเบ™ React(
    เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹: เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เบฐโ€‹เบžเบฑเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” WooCommerce Nextjs React Theme
  • 3
    archlabs_repo
    archlabs_repo
    Package repo เบชเปเบฒเบฅเบฑเบš ArchLabs เบ™เบตเป‰เปเบกเปˆเบ™
    เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบกเบฒเป„เบ”เป‰
    เบˆเบฒเบ
    https://sourceforge.net/projects/archlabs-repo/.
    เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบขเบนเปˆเปƒเบ™ OnWorks เปƒเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” archlabs_repo
  • 4
    เป‚เบ„เบ‡เบเบฒเบ™ Zephyr
    เป‚เบ„เบ‡เบเบฒเบ™ Zephyr
    เป‚เบ„เบ‡เบเบฒเบ™ Zephyr เปเบกเปˆเบ™เบ„เบปเบ™เบฎเบธเปˆเบ™เปƒเบซเบกเปˆ
    เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡ (RTOS) เบ™เบฑเป‰เบ™
    เบฎเบญเบ‡เบฎเบฑเบšเบฎเบฒเบ”เปเบงเบซเบผเบฒเบเบญเบฑเบ™
    เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ. เบกเบฑเบ™เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ a
    เปเบเปˆเบ™เบฎเบญเบเบ•เบตเบ™เบ™เป‰เบญเบ...
    เบ”เบฒเบงเป‚เบซเบฅเบ”เป‚เบ„เบ‡เบเบฒเบ™ Zephyr
  • 5
    SCons
    SCons
    SCons เป€เบ›เบฑเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบเบฒเบ™โ€‹เบเปเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบŠเบญเบšโ€‹เปเบงโ€‹
    เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹เป€เบฅเบตเบ”โ€‹เบ‚เบญเบ‡โ€‹
    เบ„เบฅเบฒเบชเบชเบดเบ "เป€เบฎเบฑเบ”" เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆ
    เบžเบงเบเป€เบฎเบปเบฒเบ—เบธเบเบ„เบปเบ™เบฎเบนเป‰เบˆเบฑเบเปเบฅเบฐเบฎเบฑเบ. SCons เปเบกเปˆเบ™
    เป„เบ”เป‰โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป€เบ›เบฑเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” SCons
  • 6
    PSeInt
    PSeInt
    PSeInt เป€เบ›เบฑเบ™เบ™เบฒเบเบžเบฒเบชเบฒ pseudo-code เบชเปเบฒเบฅเบฑเบš
    เบ™เบฑเบเบชเบถเบเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเป€เบงเบปเป‰เบฒเบžเบฒเบชเบฒเบชเบฐเป€เบ›เบ™.
    เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
    เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เปเบฅเบฐเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบทเป‰เบ™เบ–เบฒเบ™
    เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”...
    เบ”เบฒเบงเป‚เบซเบฅเบ” PSeInt
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Linux เบ„เบณ เบชเบฑเปˆเบ‡

  • 1
    7z
    7z
    7z - เปเบŸเป‰เบกเบˆเบฑเบ”เป€เบเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบชเบนเบ‡เบชเบธเบ”
    เบญเบฑเบ”โ€‹เบ•เบฒโ€‹เบชเปˆเบงเบ™โ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ” ...
    เปเบฅเปˆเบ™ 7z
  • 2
    7za
    7za
    7za - เปเบŸเป‰เบกเบˆเบฑเบ”เป€เบเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบชเบนเบ‡เบชเบธเบ”
    เบญเบฑเบ”โ€‹เบ•เบฒโ€‹เบชเปˆเบงเบ™โ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ” ...
    เปเบฅเปˆเบ™ 7za
  • 3
    creepy
    creepy
    CREEPY - เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ”
    เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบ•เบปเบงเบชเบฑเบ‡เบฅเบงเบก: creepy เปเบกเปˆเบ™
    เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบเปเบฒ
    เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบžเบนเบกโ€‹เบชเบฒเบ”โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹
    เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบˆเบฒเบ ...
    เปเบฅเปˆเบ™ creepy
  • 4
    cricket-compile
    cricket-compile
    cricket - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เบเบฒเบ™โ€‹
    เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเปเบฅเบฐเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบŠเบธเบ”เป€เบงเบฅเบฒ
    เบ‚เปเป‰เบกเบนเบ™...
    เปเบฅเปˆเบ™ cricket-compile
  • 5
    g-wrap-config
    g-wrap-config
    g-wrap-config - script เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบš
    เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡
    เบ‚เบญเบ‡ G-Wrap ...
    เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ g-wrap-config
  • 6
    g.accessgrass
    g.accessgrass
    g.access - เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
    เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบ™โ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบญเบทเปˆเบ™เป†โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹
    เบฅเบฐเบšเบปเบš. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเป‰, เบžเบดเบก
    เบชเบฐเบ–เบฒเบ™เบฐเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™: เบ—เบปเปˆเบงเป„เบ›, เปเบœเบ™เบ—เบตเปˆ
    เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹, p ...
    เปเบฅเปˆเบ™ g.accessgrass
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Ad