aboutsummaryrefslogtreecommitdiff
path: root/files/ru/websockets
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
commitc058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch)
treedf20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/websockets
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.gz
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.bz2
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.zip
unslug ru: move
Diffstat (limited to 'files/ru/websockets')
-rw-r--r--files/ru/websockets/index.html58
-rw-r--r--files/ru/websockets/writing_websocket_client_applications/index.html195
2 files changed, 0 insertions, 253 deletions
diff --git a/files/ru/websockets/index.html b/files/ru/websockets/index.html
deleted file mode 100644
index 8e6c614a0b..0000000000
--- a/files/ru/websockets/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: WebSockets
-slug: WebSockets
-tags:
- - NeedsBrowserCompatibility
- - NeedsTranslation
- - References
- - TopicStub
- - WebSockets
-translation_of: Web/API/WebSockets_API
----
-<p><strong>Вебсокеты</strong> это продвинутая технология, позволяющая открыть постоянное двунаправленное сетевое соединение между браузером пользователя и сервером. С помощью его API вы можете отправить сообщение на сервер и получить ответ без выполнения http запроса, причем этот процесс будет событийно-управляемым.</p>
-
-<div class="cleared row topicpage-table">
-<div class="section">
-<h2 class="Documentation" id="Documentation" name="Documentation">Документация</h2>
-
-<dl>
- <dt><a href="/en-US/docs/WebSockets/Writing_WebSocket_client_applications" title="WebSockets/Writing WebSocket client applications">Writing WebSocket client applications</a></dt>
- <dd>Учебник описывающий как написать WebSocket клиента работающего в браузере.</dd>
- <dt><a href="/en-US/docs/WebSockets/WebSockets_reference" title="WebSockets/WebSockets reference">Справочник по WebSocket</a></dt>
- <dd>A reference to the client-side WebSocket API.</dd>
- <dt><a href="/en-US/docs/WebSockets/Writing_WebSocket_servers" title="WebSockets/Writing WebSocket servers">(TBD) Writing WebSocket servers</a></dt>
- <dd>A guide to writing server-side code to handle the WebSocket protocol.</dd>
-</dl>
-
-<p><span class="alllinks"><a href="/en-US/docs/tag/WebSockets" title="tag/WebSockets">View All...</a></span></p>
-</div>
-
-<div class="section">
-<h2 class="Tools" id="Tools" name="Tools">Tools</h2>
-
-<ul>
- <li><a class="external" href="http://socket.io" title="http://socket.io/">Socket.IO</a>: A powerful cross-platform WebSocket API for <a class="external" href="http://nodejs.org" title="http://nodejs.org/">Node.js</a>.</li>
- <li><a class="link-https" href="https://github.com/Worlize/WebSocket-Node" title="https://github.com/Worlize/WebSocket-Node">WebSocket-Node</a>: A WebSocket server API implementation for <a class="external" href="http://nodejs.org" title="http://nodejs.org/">Node.js</a>.</li>
- <li><a href="http://ajf.me/websocket/#libs" title="http://websocket.us/#libs">A more extensive list of frameworks and libraries here</a></li>
-</ul>
-
-<h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2>
-
-<ul>
- <li><a href="/en-US/docs/AJAX" title="AJAX">AJAX</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a></li>
-</ul>
-</div>
-</div>
-
-<h2 id="Совместимость_с_браузерами"><span style="font-size: 2.33333rem; letter-spacing: -0.00278rem;">Совместимость с браузерами</span></h2>
-
-<p>{{Compat("api.WebSocket")}}</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a class="external" href="http://tools.ietf.org/html/rfc6455">RFC 6455 - The WebSocket Protocol</a></li>
- <li><a class="external" href="http://www.w3.org/TR/websockets/">WebSocket API Specification</a></li>
- <li><a href="/en-US/docs/Server-sent_events" title="Server-sent_events">Server-Sent Events</a></li>
- <li><a class="external" href="http://websocket.us/">WebSocket.us</a> - a community-run, not-for-profit site about WebSocket</li>
-</ul>
diff --git a/files/ru/websockets/writing_websocket_client_applications/index.html b/files/ru/websockets/writing_websocket_client_applications/index.html
deleted file mode 100644
index 5eaca515c2..0000000000
--- a/files/ru/websockets/writing_websocket_client_applications/index.html
+++ /dev/null
@@ -1,195 +0,0 @@
----
-title: Написание клиентских приложений с помощью вебсокетов
-slug: WebSockets/Writing_WebSocket_client_applications
-translation_of: Web/API/WebSockets_API/Writing_WebSocket_client_applications
----
-<p>{{ draft() }}</p>
-
-<p>Вебсокеты - технология, которя позволяет открыть интерактивную сессию общения между браузером пользователя и сервером. Соединяясь через вебсокеты, веб-приложения могут осуществлять взаимодействие в реальном времени вместо того, чтобы делать запросы к клиенту о входящих/исходящих изменениях.</p>
-
-<div class="note"><strong>Замечание: </strong>У нас есть работающий пример чата, части кода из которого используются в статье. Пример будет доступен, когда инфраструктура сайта сможет должным образом поддерживать хостинг примеров с использованием вебсокетов.</div>
-
-<h2 id="Доступность_вебсокетов">Доступность вебсокетов</h2>
-
-<p>API вебсокетов доступно в Javascript коде, область видимости которого включает объект DOM {{ domxref("Window") }} или любой объект, реализующий {{ domxref("WorkerUtils") }}; это означает, что вы можете использовать Web Workers.</p>
-
-<div class="note"><strong>Замечание:</strong> API вебсокетов (как и протокол лежащий в его основе) всё ещё проходят этап активной разработки; в настоящее время существует много проблем совместимости с разными браузерами (и даже с разными релизами одного и того же браузера).</div>
-
-<h2 id="Создание_объекта_WebSocket">Создание объекта WebSocket</h2>
-
-<p><code><font face="Lucida Grande, Lucida Sans Unicode, DejaVu Sans, Lucida, Arial, Helvetica, sans-serif">Чтобы общаться через протокол вебсокетов необходимо создать объект </font><a href="/en/WebSockets/WebSockets_reference/WebSocket" title="en/WebSockets/WebSockets reference/WebSocket">WebSocket</a></code>; при его создании автоматически происходит попытка открыть соединение с сервером.</p>
-
-<p>Конструктор WebSocket принимает один обязательный и один необязательный параметр:</p>
-
-<pre>WebSocket WebSocket(
-  in DOMString url,
-  in optional DOMString protocols
-);
-
-WebSocket WebSocket(
-  in DOMString url,
-  in optional DOMString[] protocols
-);
-</pre>
-
-<dl>
- <dt><code>url</code></dt>
- <dd>URL, с которым происходит соединение; это должен быть URL вебсокет-сервера.</dd>
- <dt><code>protocols</code> {{ optional_inline() }}</dt>
- <dd>Может быть одной строкой протокола или массивом таких строк. Эти строки используют для индикации под-протоколов; таким образом, один сервер может реализовывать несколько под-протоколов вебсокетов (к примеру, вам может потребоваться, чтобы сервер мог обрабатывать разные типы взаимодействий в зависимости от определённого под-протокола). Если вы не укажете строку протокола, то будет передана пустая строка.</dd>
-</dl>
-
-<p>В конструкторе могут возникать следующие исключения:</p>
-
-<dl>
- <dt><code>SECURITY_ERR</code></dt>
- <dd>Порт, к которому проводится подключение, заблокирован.</dd>
-</dl>
-
-<dl>
-</dl>
-
-<h3 id="Ошибки_подключения">Ошибки подключения</h3>
-
-<p><span style="line-height: 21px;">Если ошибка случается во время попытки подключения, то в объект </span><a href="https://developer.mozilla.org/en/WebSockets/WebSockets_reference/WebSocket" style="line-height: 21px;" title="WebSocket"><code style="font-style: inherit;">WebSocket</code></a><span style="line-height: 21px;"> сначала посылается простое событие с именем «error» (таким образом, задействуя обработчик </span><code style="font-size: 14px; line-height: 21px;">onerror</code><span style="line-height: 21px;">), потом - событие </span><a href="https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent" style="line-height: 21px;" title="CloseEvent"><code style="font-style: inherit;">CloseEvent</code></a><span style="line-height: 21px;"> </span><span style="line-height: 21px;"> (таким образом, задействуя обработчик </span><code style="font-size: 14px; line-height: 21px;">onclose</code><span style="line-height: 21px;">) чтобы обозначить причину закрытия соединения.</span></p>
-
-<p>Однако, начиная с версии Firefox 11, типичным является получение в консоль от платформы Mozilla расширенного сообщения об обшибке и кода завершения, как то определено в <a class="external" href="http://tools.ietf.org/html/rfc6455#section-7.4" title="RFC 6455 Section 7.4">RFC 6455, Section 7.4</a> посредством <a href="/en/WebSockets/WebSockets_reference/CloseEvent" title="CloseEvent"><code>CloseEvent</code></a>.</p>
-
-<h3 id="Примеры">Примеры</h3>
-
-<p>Этот простой пример создает новый WebSocket, подключаемый к серверу <code><span class="nowiki">ws://www.example.com/socketserver</span></code>. В данном примере в конструктор сокета в качестве дополнительного параметра передается пользовательский протокол "protocolOne", хотя эта часть может быть опущена.</p>
-
-<pre class="brush: js">var exampleSocket = new WebSocket("ws://www.example.com/socketserver", "protocolOne");
-</pre>
-
-<p>После выполнения функции, <code>exampleSocket</code>.<code>readyState</code> будет иметь значение <code>CONNECTING</code>. <code>readyState</code> изменится на <code>OPEN</code> как только соединение станет готовым к передаче данных.</p>
-
-<p>Если нужно открыть соединение, поддерживающее несколько протоколов, можно передать массив протоколов:</p>
-
-<pre class="brush: js">var exampleSocket = new WebSocket("ws://www.example.com/socketserver", ["protocolOne", "protocolTwo"]);
-</pre>
-
-<p>Когда соединение установлено (что соответствует, <code>readyState</code> <code>OPEN</code>), <code>exampleSocket.protocol</code> сообщит, какой протокол выбрал сервер.</p>
-
-<p>In the above examples <code>ws</code> has replaced <code>http</code>, similarly <code>wss</code> replaces <code>https</code>. 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 <code><span class="nowiki">ws://www.example.com</span></code> or <code><span class="nowiki">wss://www.example.com</span></code>.</p>
-
-<h2 id="Отправка_данных_на_сервер">Отправка данных на сервер</h2>
-
-<p>Однажды открыв соединение, вы можете передавать данные на сервер. Для осуществления этого, вызовите метод <a href="/en/WebSockets/WebSockets_reference/WebSocket#send()" title="en/WebSockets/WebSockets reference/WebSocket#send()"><code>send()</code></a> объекта <code>WebSocket</code>  для каждого сообщение, которое желаете отправить:</p>
-
-<pre class="brush: js">exampleSocket.send("Here's some text that the server is urgently awaiting!");
-</pre>
-
-<p>Вы можете пересылать данные в виде строки, {{ domxref("Blob") }}, так и <a href="/en/JavaScript_typed_arrays/ArrayBuffer" title="en/JavaScript typed arrays/ArrayBuffer"><code>ArrayBuffer</code></a>.</p>
-
-<div class="note"><strong>Note:</strong> Prior to version 11, Firefox only supported sending data as a string.</div>
-
-<p>As establishing a connection is asynchronous and prone to failure there is no guarantee that calling the <code>send()</code> 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 <code>onopen</code> handler to do the work:</p>
-
-<pre class="brush: js">exampleSocket.onopen = function (event) {
-  exampleSocket.send("Here's some text that the server is urgently awaiting!");
-};
-</pre>
-
-<h3 id="Using_JSON_to_transmit_objects">Using JSON to transmit objects</h3>
-
-<p>One handy thing you can do is use <a href="/en/JSON" title="en/JSON">JSON</a> 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:</p>
-
-<pre class="brush: js">// 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,
-    id: clientID,
-    date: Date.now()
-  };
-
-  // Send the msg object as a JSON-formatted string.
-  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 = "";
-}
-</pre>
-
-<h2 id="Receiving_messages_from_the_server">Receiving messages from the server</h2>
-
-<p>WebSockets is an event-driven API; when messages are received, a "message" event is delivered to the <code>onmessage</code> function. To begin listening for incoming data, you can do something like this:</p>
-
-<pre class="brush: js">exampleSocket.onmessage = function (event) {
-  console.log(event.data);
-}
-</pre>
-
-<h3 id="Receiving_and_interpreting_JSON_objects">Receiving and interpreting JSON objects</h3>
-
-<p>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:</p>
-
-<ul>
- <li>Login handshake</li>
- <li>Message text</li>
- <li>User list updates</li>
-</ul>
-
-<p>The code that interprets these incoming messages might look like this:</p>
-
-<pre class="brush: js">exampleSocket.onmessage = function(event) {
- var f = document.getElementById("chatbox").contentDocument;
- var text = "";
- var msg = JSON.parse(event.data);
- var time = new Date(msg.date);
- var timeStr = time.toLocaleTimeString();
-
- switch(msg.type) {
- case "id":
- clientID = msg.id;
- setUsername();
- break;
- case "username":
- text = "&lt;b&gt;User &lt;em&gt;" + msg.name + "&lt;/em&gt; signed in at " + timeStr + "&lt;/b&gt;&lt;br&gt;";
- break;
- case "message":
- text = "(" + timeStr + ") &lt;b&gt;" + msg.name + "&lt;/b&gt;: " + msg.text + "&lt;br&gt;";
- break;
- case "rejectusername":
- text = "&lt;b&gt;Your username has been set to &lt;em&gt;" + msg.name + "&lt;/em&gt; because the name you chose is in use.&lt;/b&gt;&lt;br&gt;"
- break;
- case "userlist":
- var ul = "";
- for (i=0; i &lt; msg.users.length; i++) {
- ul += msg.users[i] + "&lt;br&gt;";
- }
- document.getElementById("userlistbox").innerHTML = ul;
- break;
- }
-
- if (text.length) {
- f.write(text);
- document.getElementById("chatbox").contentWindow.scrollByPages(1);
- }
-};
-</pre>
-
-<p>Here we use <a href="/en/JavaScript/Reference/Global_Objects/JSON/parse" title="en/JavaScript/Reference/Global Objects/JSON/parse"><code>JSON.parse()</code></a> to convert the JSON object back into the original object, then examine and act upon its contents.</p>
-
-<h3 id="Text_data_format">Text data format</h3>
-
-<p>Text received over a WebSocket connection is in UTF-8 format.</p>
-
-<p>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.</p>
-
-<h2 id="Closing_the_connection">Closing the connection</h2>
-
-<p>When you've finished using the WebSocket connection, call the WebSocket method <a href="/en/WebSockets/WebSockets_reference/WebSocket#close()" title="en/WebSockets/WebSockets reference/WebSocket#close()"><code>close()</code></a>:</p>
-
-<pre class="brush: js">exampleSocket.close();
-</pre>
-
-<p>It may be helpful to examine the socket's <code>bufferedAmount</code> attribute before attempting to close the connection to determine if any data has yet to be transmitted on the network.</p>
-
-<h2 id="Security_considerations">Security considerations</h2>
-
-<p>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.</p>
-
-<p>{{ languages ( {"zh-tw": "zh_tw/WebSockets/Writing_WebSocket_client_applications"} ) }}</p>