#include <WiFi.h>
#include <WebSocketsClient.h>
const char* ssid = "Wokwi-GUEST"; // Tên mạng WiFi
const char* password = ""; // Mật khẩu WiFi
const char* serverIP = "192.168.146.192"; // Địa chỉ IP của WebSocket server
const int serverPort = 7878; // Cổng của WebSocket server
WebSocketsClient webSocket; // Đối tượng WebSocketClient
void setup() {
Serial.begin(115200); // Khởi tạo kết nối Serial
startWiFi(); // Kết nối WiFi
}
void loop() {
webSocket.loop(); // Duy trì kết nối WebSocket
// Thử kết nối lại nếu WebSocket bị ngắt
if (!webSocket.isConnected()) {
Serial.println("WebSocket not connected, reconnecting...");
connectWebSocket();
delay(1000); // Đợi một chút trước khi thử kết nối lại
}
}
// Kết nối với mạng WiFi
void startWiFi() {
WiFi.begin(ssid, password); // Bắt đầu kết nối WiFi
Serial.print("Connecting to ");
Serial.print(ssid);
while (WiFi.status() != WL_CONNECTED) { // Chờ kết nối thành công
delay(1000);
Serial.print(".");
}
Serial.println("\nWiFi connected!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // In địa chỉ IP
}
// Kết nối WebSocket
void connectWebSocket() {
webSocket.begin(serverIP, serverPort, "/"); // Kết nối WebSocket tới server
Serial.println("WebSocket connecting...");
webSocket.onEvent(webSocketEvent); // Xử lý sự kiện WebSocket
}
// Hàm xử lý sự kiện WebSocket
void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) {
switch (type) {
case WStype_CONNECTED:
Serial.println("WebSocket connected!"); // In ra khi kết nối WebSocket thành công
break;
case WStype_DISCONNECTED:
Serial.println("WebSocket disconnected!"); // In ra khi WebSocket bị ngắt kết nối
break;
case WStype_ERROR:
Serial.println("WebSocket connection error!");
break;
}
}