Использование NodeMCU для работы в качестве точки доступа Wi-Fi. Точка доступа работает, и я могу подключиться к ней, и когда я посещаю 192.168.4.1, print(payload)
, мой запрос печатается на консоль, так что все работает, но Safari на iOS жалуется, что сервер перестает отвечать.Сервер NodeMCU не отвечает
function initialConnection()
wifi.setmode(wifi.SOFTAP)
-- Setup as Access Point
print(wifi.ap.config({
ssid = "SSIDNAME",
pwd = "SSIDPASSWORD",
auth = wifi.OPEN
}))
server = net.createServer(net.TCP, 30)
if server then
server:listen(80, function(conn)
conn:on("receive",function(conn,payload)
print(payload)
conn:send("<h1> Hello, NodeMCU!!! </h1>")
end)
end)
end
-- statusLed:flashBlue(100)
end
Это запрос, который печатается на консоль
GET /?gddf HTTP/1.1
Host: 192.168.4.1
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1
Accept-Language: en-us
DNT: 1
Cache-Control: max-age=0
Не уверен, если это делает никакой разницы, но во втором обратном вызове параметр сокета не должны» t будет называться 'conn', поскольку это« накладывается »на« conn »первого обратного вызова. Сделайте это как 'function (sck, payload) sck: send()'. –
Из любопытства я напечатал [адрес] параметра соединения на каждом уровне вложения, т. Е. Print (conn) conn: on («sent», function (sck) print (sck) sck: close() end) end). Адрес объекта, переданного как conn, был таким же, как sck. Единственным объектом, у которого был другой адрес, был тот, который был передан обратному сообщению об отключении, они не соответствовали ни одному из значений, используемых в другом месте кода. –