diff --git a/websocket.lua b/websocket.lua index 8e29bef..22eddf9 100644 --- a/websocket.lua +++ b/websocket.lua @@ -342,10 +342,16 @@ function ws:start() local message, err = self:recv() if not message then --print('recv eror:', message, err) - socket.close(self.id) + if socket.invalid(self.id) then + socket.close(self.id) + self.handler.on_close(self) + elseif "string" == type(err) and err:find("first 2 byte error") then + socket.close(self.id) + self.handler.on_close(self) + end end end end -return ws \ No newline at end of file +return ws