NodeMCUを使用して無線LANアクセスポイントとして機能する。アクセスポイントが動作していて、私はそれに接続できます。私が192.168.4.1にアクセスしたとき、print(payload)
私の要求はコンソールに表示されるので、すべて動作していますが、iOS上のSafariはサーバーが応答を停止していると訴えています。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
それはどんな違いがあれば必ずしかし、2番目のコールバックのソケットパラメータshouldn」ではありませんこれは最初のコールバックの「conn」で「オーバーレイ」されるので、「conn」と呼ばれます。 'function(sck、payload)sck:send()'のようにしてください。 –
私はネスティングの各レベルでconnectionパラメータの[address]を表示しました。つまり、print(conn):on( "sent"、function(sck)print(sck)sck:close )。 connとして渡されたオブジェクトのアドレスはsckと同じでした。異なるアドレスを持つ唯一のオブジェクトは、切断コールバックに渡されたオブジェクトで、コード内の他の場所で使用されていた値と一致しませんでした。 –