Websocket连接。我们为什么要打电话到ws://echo.websocket.org?
我正在编写一些websocket代码,到目前为止,我有以下几点:Websocket连接。我们为什么要打电话到ws://echo.websocket.org?,websocket,Websocket,我正在编写一些websocket代码,到目前为止,我有以下几点: window.onload = function() { // Get references to elements on the page. var form = document.getElementById('message-form'); var messageField = document.getElementById('message'); var messagesList = document.g
window.onload = function() {
// Get references to elements on the page.
var form = document.getElementById('message-form');
var messageField = document.getElementById('message');
var messagesList = document.getElementById('messages');
var socketStatus = document.getElementById('status');
var closeBtn = document.getElementById('close');
var socket = new WebSocket('ws://echo.websocket.org');
// Show a connected message when the WebSocket is opened.
socket.onopen = function(event) {
socketStatus.innerHTML = 'Connected to: ' + event.currentTarget.url;
socketStatus.className = 'open';
};
// Handle any errors that occur.
socket.onerror = function(error) {
console.log('WebSocket Error: ' + error);
};
form.onsubmit = function(e) {
e.preventDefault();
// Retrieve the message from the textarea.
var message = messageField.value;
// Send the message through the WebSocket.
socket.send(message);
// Add the message to the messages list.
messagesList.innerHTML += '<li class="sent"><span>Sent:</span>' + message +
'</li>';
// Clear out the message field.
messageField.value = '';
return false;
};
socket.onmessage = function(event) {
var message = event.data;
messagesList.innerHTML += '<li class="received"><span>Received:</span>' +
message + '</li>';
};
closeBtn.onclick = function(e) {
e.preventDefault();
// Close the WebSocket.
socket.close();
return false;
};
socket.onclose = function(event) {
socketStatus.innerHTML = 'Disconnected from WebSocket.';
socketStatus.className = 'closed';
};
};
那是什么网址?当我用我的浏览器访问那里时,它并不存在,但它似乎很重要,因为我不能简单地用随机字符串替换url。它有什么作用?Websocket是外部API吗
我正在查看“网络”选项卡,看到以下内容:
Request URL: ws://echo.websocket.org/
Request Method: GET
Status Code: 101 Web Socket Protocol Handshake
从概念上讲,发生了什么?为什么我需要向外部站点发出使用websocket的请求?
ws://
开头的URL表示打算使用webSocket协议的连接
此代码的作用是:
它正在与位于echo.webSocket.org
的webSocket服务器建立webSocket连接
那是什么网址
这是一个webSocket URL,指示使用webSocket协议连接和与该主机对话的意图。这不是您在浏览器的URL栏中键入的内容。它是编程语言(比如浏览器中的Javascript)使用的东西
Websocket是外部API吗
它是一种协议,指定了连接方式、安全方案、数据包格式等。。。您可以说http协议与webSocket协议的关系就像英语与日语的关系一样。它们是不同的交流方式。webSocket协议的规范如下所示:
它还可以很好地适应http/浏览器世界,并与最初为http请求设计的基础结构友好。只要在谷歌上搜索“what is websocket”,就会出现各种各样的描述性文章。提供了一个非常好的概述
关于webSocket协议是什么以及它的用途,web上已经有很多文章了,所以我在这里不再重复了。您可以看到关于webSocket客户端的教程和关于webSocket服务器的教程
简言之,它被设计成一种持久、连续的连接(在所有现代浏览器中都支持),允许客户端连接到服务器,然后(可能)长时间地保持连续连接。当该连接打开时,可以通过webSocket轻松地双向发送数据。人们使用它的主要原因是,他们希望服务器能够及时地直接向客户机发送数据,而不需要客户机不断地反复询问服务器是否有任何新数据。一旦建立了webSocket连接,服务器就可以随时将数据“推送”到客户端
我正在查看网络选项卡,我看到了这个。从概念上讲,发生了什么
请求URL:ws://echo.websocket.org/
请求方法:获取状态代码:
101 Web套接字协议握手
这些是建立webSocket连接的第一步。您可以在此处看到该连接工作方式的更完整描述:。这篇文章讨论了socket.io,它是构建在webSocket之上的另一层,但底层协议是webSocket
为什么我需要向外部站点发出使用WebSocket的请求
webSocket的用途是将客户机连接到服务器(这样就可以在它们之间发送数据),因此它只能在连接到某个服务器时使用
Request URL: ws://echo.websocket.org/
Request Method: GET
Status Code: 101 Web Socket Protocol Handshake
var socket = new WebSocket('ws://echo.websocket.org');