summaryrefslogtreecommitdiff
path: root/xmake/modules/private/service/server/server.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-04-07 22:41:50 +0800
committerruki <[email protected]>2022-04-07 22:41:50 +0800
commit226351fea82959c5f80bda68546411099e7b4074 (patch)
tree8cb0eb6583123a6912815a7264cd315416e9c52b /xmake/modules/private/service/server/server.lua
parentda0d547ca4cbfe5fd61e173d398460874d0e758e (diff)
improve stream recv
Diffstat (limited to 'xmake/modules/private/service/server/server.lua')
-rw-r--r--xmake/modules/private/service/server/server.lua21
1 files changed, 4 insertions, 17 deletions
diff --git a/xmake/modules/private/service/server/server.lua b/xmake/modules/private/service/server/server.lua
index 96adf49dd..534a2da15 100644
--- a/xmake/modules/private/service/server/server.lua
+++ b/xmake/modules/private/service/server/server.lua
@@ -120,24 +120,11 @@ end
-- handle session
function server:_handle_session(sock)
print("%s: %s session connected", self, sock)
- local real = 0
- local recv = 0
- local data = nil
- local wait = false
- local buff = bytes(8192)
+ local rstream = stream(sock)
while true do
- real, data = sock:recv(buff, 8192)
- if real > 0 then
- if data then
- end
- recv = recv + real
- wait = false
- elseif real == 0 and not wait then
- if sock:wait(socket.EV_RECV, -1) == socket.EV_RECV then
- wait = true
- else
- break
- end
+ local data = rstream:recv_string()
+ if data then
+ print("%s", data)
else
break
end