У меня есть веб-сервер flask socketIO, возможно ли подключить Esp8266 к socketIO ??? Потому что я пытаюсь, но безуспешно. Я получаю эту ошибку
192.168.1.237 - - [28 / Apr / 2020 17:19:33] "GET /socket.io/?EIO=3&transport=polling&t=N71H8Tv&sid=40ecc87b0bb84bc99a465165b281da8f HTTP / 1.1" 400 -
main.py
from flask import Flask, render_template
from flask_socketio import SocketIO, send
import os
app = Flask(__name__)
app.config['SECRET-KEY'] = os.urandom(24).hex()
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('message')
def handle_maessage(msg):
send(msg, broadcast=True)
if __name__ == '__main__':
socketio.run(app, host='192.168.1.113', port=5000)
index. html
<!DOCTYPE html>
<html>
<head>
<title>Chat Room</title>
<script type="text/javascript" src="{{ url_for('static', filename = 'socket.io.min.js') }}"></script>
<script src="{{ url_for('static', filename = 'jquery.min.js') }}"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
var socket = io.connect('http://192.168.1.113:5000');
socket.on('connect', function() {
socket.send('User has connected!');
});
socket.on('message', function(msg) {
$("#messages").append('<li>'+msg+'</li>');
console.log('Received message');
});
$('#sendbutton').on('click', function() {
socket.send($('#myMessage').val());
$('#myMessage').val('');
});
});
</script>
<ul id="messages"></ul>
<input type="text" id="myMessage">
<button id="sendbutton">Send</button>
</body>
</html>
Esp.ino
#include <ESP8266WiFi.h>
#include <WebSocketClient.h>
const char* arduino_id = "00000000"; // I gave the board an id
const char* ssid = "ssid";
const char* password = "password";
char path[] = "/socket.io/?EIO=3&transport=polling&t=N71H8Tv&sid=40ecc87b0bb84bc99a465165b281da8f";
char host[] = "192.168.1.113";
WebSocketClient webSocketClient;
// Use WiFiClient class to create TCP connections
WiFiClient client;
void setup()
{
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Connect to the websocket server
if (client.connect(host, 5000))
{
Serial.println("Connected to server");
}
else
{
Serial.println("Connection failed.");
}
// Handshake with the server
webSocketClient.path = path;
webSocketClient.host = host;
if (webSocketClient.handshake(client))
{
Serial.println("Handshake successful");
} else
{
Serial.println("Handshake failed.");
}
}
void loop()
{
Serial.println("got in to loop");
String data;
if (client.connected())
{
webSocketClient.getData(data);
if (data.length() > 0)
{
Serial.print("Received data: ");
Serial.println(data);
}
webSocketClient.sendData(data);
}
else
{
Serial.println("Client disconnected.");
}
// wait to fully let the client disconnect
delay(3000);
}