Tôi đã kết nối Websocket với máy chủ trong vòng 40 giây hoặc lâu hơn. Lý tưởng nhất là nó sẽ được mở vĩnh viễn.Cách chính xác để xử lý Websocket
Máy khách liên tục gửi dữ liệu đến máy chủ và ngược lại.
Ngay bây giờ tôi đang sử dụng trình tự này:
var socket;
function senddata(data)
{
if (!socket)
{
socket = new WebSocket(url);
socket.onopen = function (evt) {
socket.send(data);
socket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
port.postMessage(obj);
}
socket.oneerror = function (evt) {
socket.close();
socket = null;
}
socket.onclose = function(evt){
socket = null;
}
}
}
else
{
socket.send(data);
}
}
Rõ ràng theo logic hiện tại, trong trường hợp lỗi, dữ liệu yêu cầu hiện tại có thể không được gửi ở tất cả.
Để thẳng thắn đôi khi nó cho lỗi rằng websocket vẫn đang ở trạng thái kết nối. Kết nối này thường xuyên bị hỏng do sự cố mạng. Trong ngắn hạn nó không hoạt động hoàn hảo.
Tôi đã đọc thiết kế tốt hơn: How to wait for a WebSocket's readyState to change nhưng không bao gồm tất cả các trường hợp tôi cần xử lý.
Ngoài ra tôi đã Google tìm hiểu về điều này nhưng không thể có được quy trình chính xác cho việc này.
Vì vậy, cách nào đúng để gửi dữ liệu thông thường thông qua Websockets xử lý tốt các vấn đề này như ngắt kết nối, v.v ...?
Cảm ơn tôi đã thêm nó. – user5858