From 64471936f0c8ee43b7a35c4a020c6435e64dfcaf Mon Sep 17 00:00:00 2001 From: aagz <46520039+aagz@users.noreply.github.com> Date: Thu, 17 Jun 2021 19:48:59 +0300 Subject: [ru] "Writing WebSocket client applications" - completed (#1226) * [ru] "Writing WebSocket client applications" - completed * Update files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> * Update files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> * Update files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> * Update index.html Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> --- .../index.html | 57 +++++++++++----------- 1 file changed, 28 insertions(+), 29 deletions(-) (limited to 'files/ru/web') diff --git a/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html index 7a6e602c2c..48d8a53457 100644 --- a/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html +++ b/files/ru/web/api/websockets_api/writing_websocket_client_applications/index.html @@ -4,7 +4,6 @@ slug: Web/API/WebSockets_API/Writing_WebSocket_client_applications translation_of: Web/API/WebSockets_API/Writing_WebSocket_client_applications original_slug: WebSockets/Writing_WebSocket_client_applications --- -

{{ draft() }}

Веб-сокеты - технология, которая позволяет открыть интерактивную сессию общения между браузером пользователя и сервером. Соединяясь через веб-сокеты, веб-приложения могут осуществлять взаимодействие в реальном времени вместо того, чтобы делать запросы к клиенту о входящих/исходящих изменениях.

@@ -72,33 +71,33 @@ WebSocket WebSocket(

Когда соединение установлено (что соответствует, readyState OPEN), exampleSocket.protocol сообщит, какой протокол выбрал сервер.

-

In the above examples ws has replaced http, similarly wss replaces https. Establishing a WebSocket relies on the HTTP Upgrade mechanism, so the request for the protocol upgrade is implicit when we address the HTTP server as ws://www.example.com or wss://www.example.com.

+

В приведенных выше примерах ws заменяет http, аналогично wss заменяет https. Установка соединения через WebSocket зависит от механизма обновления HTTP, таким образом запрос на обновление неявный, когда мы обращаемся к серверу HTTP с помощью ws://www.example.com или wss://www.example.com.

Отправка данных на сервер

Однажды открыв соединение, вы можете передавать данные на сервер. Для осуществления этого, вызовите метод send() объекта WebSocket  для каждого сообщение, которое желаете отправить:

-
exampleSocket.send("Here's some text that the server is urgently awaiting!");
+
exampleSocket.send("Вот текст, который будет отправлен серверу.");
 

Вы можете пересылать данные в виде строки, {{ domxref("Blob") }}, так и ArrayBuffer.

-
Note: Prior to version 11, Firefox only supported sending data as a string.
+
Замечание: До версии 11, Firefox поддерживал отправку данных только в виде строки.
-

As establishing a connection is asynchronous and prone to failure there is no guarantee that calling the send() method immediately after creating a WebSocket object will be successful. We can at least be sure that attempting to send data only takes place once a connection is established by defining an onopen handler to do the work:

+

Так как установка соедиения асинхронна и подвержена сбоям, то нет никакой гарантии, что вызов метода send(), после создания объекта WebSocket, будет завершен успешно. По крайней мере, мы можем быть уверены, что попытка отправить данные будет иметь место только после того, как соединение будет установлено, определив обработчик onopen для выполнения этого действия:

exampleSocket.onopen = function (event) {
-  exampleSocket.send("Here's some text that the server is urgently awaiting!");
+  exampleSocket.send("Вот текст, который будет отправлен серверу.");
 };
 
-

Using JSON to transmit objects

+

Использование JSON для передачи объектов

-

One handy thing you can do is use JSON to send reasonably complex data to the server. For example, a chat program can interact with a server using a protocol implemented using packets of JSON-encapsulated data:

+

Одна удобная вещь которую вы можете сделать, это использовать JSON для пересылки сложных данных на сервер. Например, приложение-чат может взаимодействовать с сервером, используя протокол, реализованный с использованием пакетов данных, инкапсулированных в JSON:

-
// Send text to all users through the server
+
// Отправьте текст всем пользователям через сервер
 function sendText() {
-  // Construct a msg object containing the data the server needs to process the message from the chat client.
+  // Создайте объект содержащий данные, необходимые серверу для обрабоки сообщения от клиента чата.
   var msg = {
     type: "message",
     text: document.getElementById("text").value,
@@ -106,34 +105,34 @@ function sendText() {
     date: Date.now()
   };
 
-  // Send the msg object as a JSON-formatted string.
+  // Отправьте объект в виде JSON строки.
   exampleSocket.send(JSON.stringify(msg));
 
-  // Blank the text input element, ready to receive the next line of text from the user.
+  // Очистите элемент ввода текста, чтобы получить следующую строку текста от пользователя.
   document.getElementById("text").value = "";
 }
 
-

Receiving messages from the server

+

Получение сообщений от сервера

-

WebSockets is an event-driven API; when messages are received, a "message" event is delivered to the onmessage function. To begin listening for incoming data, you can do something like this:

+

WebSockets — это API, управляемый событиями; когда сообщения получены, событие "message" доставлено в функцию onmessage. Чтобы начать прослушивание входящих данных, вы можете сделать что-то вроде этого:

exampleSocket.onmessage = function (event) {
   console.log(event.data);
 }
 
-

Receiving and interpreting JSON objects

+

Получение и интерпретация JSON объектов

-

Let's consider the chat client application first alluded to in {{ anch("Using JSON to transmit objects") }}. There are assorted types of data packets the client might receive, such as:

+

Давайте рассмотрим клиентское приложение чата, которое впервые упоминалось в разделе {{ anch("Использование JSON для передачи объектов") }}. Есть разные типы пакетов данных, которые может получить клиент, например:

-

The code that interprets these incoming messages might look like this:

+

Код обрабатывающий эти входящие сообщения, может выглядеть так:

exampleSocket.onmessage = function(event) {
   var f = document.getElementById("chatbox").contentDocument;
@@ -172,25 +171,25 @@ function sendText() {
 };
 
-

Here we use JSON.parse() to convert the JSON object back into the original object, then examine and act upon its contents.

+

Здесь мы используем JSON.parse() чтобы преобразовать JSON строку в объект, затем обработайте его.

-

Text data format

+

Формат текстовых данных

-

Text received over a WebSocket connection is in UTF-8 format.

+

Текст, полученный через WebSocket должен иметь кодировку UTF-8

-

Prior to Gecko 9.0 {{ geckoRelease("9.0") }}, certain non-characters in otherwise valid UTF-8 text would cause the connection to be terminated. Now Gecko permits these values.

+

До Gecko 9.0 {{ geckoRelease("9.0") }}, некоторые не символьные значения в допустимом тексте UTF-8 могут привести к разрыву соединения. Теперь Gecko допускает эти значения.

-

Closing the connection

+

Закрытие соединения

-

When you've finished using the WebSocket connection, call the WebSocket method close():

+

Когда вы закончили использовать соединение WebSocket, закройте его используя метод close():

exampleSocket.close();
 
-

It may be helpful to examine the socket's bufferedAmount attribute before attempting to close the connection to determine if any data has yet to be transmitted on the network.

+

Перед попыткой закрыть соединение может быть полезно проверить атрибут bufferedAmount чтобы определить, не переданы ли еще какие-либо данные по сети.

-

Security considerations

+

Безопасность

-

WebSockets should not be used in a mixed content environment; that is, you shouldn't open a non-secure WebSocket connection from a page loaded using HTTPS or vice-versa. In fact, some browsers explicitly forbid this, including Firefox 8 and later.

+

WebSocket не следует использовать в среде со смешанным содержимым: то есть вы не должны открывать незащищенное соединение WebSocket со страницы, загруженной с использованием HTTPS, или наоборот. Фактически, некоторые браузеры явно запрещают это, например Firefox 8 и выше.

{{ languages ( {"zh-tw": "zh_tw/WebSockets/Writing_WebSocket_client_applications"} ) }}

-- cgit v1.2.3-54-g00ecf