44 lines
1.3 KiB
Lua
44 lines
1.3 KiB
Lua
local skynet = require "skynet"
|
||
local socket = require "skynet.socket"
|
||
local httpd = require "http.httpd"
|
||
local urllib = require "http.url"
|
||
local sockethelper = require "http.sockethelper"
|
||
|
||
-- 发送html
|
||
local function response(id, ...)
|
||
local ok, err = httpd.write_response(sockethelper.writefunc(id), ...)
|
||
if not ok then
|
||
-- if err == sockethelper.socket_error , that means socket closed.
|
||
skynet.error(string.format("fd = %d, %s", id, err))
|
||
end
|
||
end
|
||
|
||
local function handle(id)
|
||
socket.start(id) -- 这里一定要start,否则不会接收来自客户端的请求
|
||
print("handle",id)
|
||
local code, url, method, header, body = httpd.read_request(sockethelper.readfunc(id), 8192)
|
||
print(code, url, method, header, body)
|
||
if code then
|
||
print(code, url, method, header, body)
|
||
local f = io.open("/home/gdut17/skynet_test/websocket/index3.html", "r")
|
||
local index_html = f:read("*a")
|
||
f:close()
|
||
response(id, code, index_html)
|
||
end
|
||
socket.close(id)
|
||
end
|
||
|
||
local function accept(clientfd, addr)
|
||
--skynet.newservice("agent", clientfd, addr)
|
||
-- skynet.error("http req ",clientfd,addr)
|
||
--handle(clientfd)
|
||
skynet.fork(handle,clientfd)
|
||
end
|
||
|
||
|
||
skynet.start(function ()
|
||
local listenfd = socket.listen("0.0.0.0", 9999)
|
||
skynet.error("http server listen on 0.0.0.0:9999")
|
||
socket.start(listenfd, accept)
|
||
end)
|