cari
Rumahhujung hadapan webTutorial H5详细介绍WebSocket API HTML5规范翻译

1.介绍

为了让Web应用能够和服务器进程之间保持双向通信,这里介绍WebSocket接口

2.一致性要求(略)

3.术语(略)

4.WebSocket接口

(代码略)

WebSocket(url, protocols)构造函数可以传入1-2个参数。第一个参宿指定要连接的URL。第二个参数如果声明,可以是一个字符串或者是一个字符串数组。如果是一个字符串,它就相当于一个仅包含那一个字符串的数组。如果第二个参数省略,它就相当于一个空数组【也就是说不论第二个参数传入的是什么,都会当作一个字符串数组处理】。每一个数组中的字符串都是一个子协议名。只有当服务器声明其已经选择了其中一个子协议的时候连接才能建立。所有子协议名必须符合如下要求:这些字符串要包含WebSocket协议声明头部的Sec-WebSocket-Protocol的内容①。

WebSocket()构造函数被调用时,用户代理必须执行如下步骤:

(1)从url参数中解析出URL的各个组件,从而获得主机、端口、资源名和安全协议(host, port, resource name, and secure)。如果这个过程失败了,就会抛出SyntaxError异常并且终止下面的步骤。

(2)如果secure是空,但是原来的进入脚本有一个模式组建其本身就是一个安全协议,比如HTTPS,那么就抛出SecurityError异常。(If secure is false but the origin of the entry script has a scheme component that is itself a secure protocol, e.g. HTTPS, then throw a SecurityError exception.)

(3)如果参数中的使用端口被用户代理设置为禁止访问的,那么就会抛出SecurityError异常。端口80443不应该被禁止访问,包括securefalse的情况下443端口不能禁止访问,securetrue的时候80端口不能禁止访问【这里是说,WebSocket有两种形式,ws是不带安全协议的,默认使用80端口,wss是带安全协议的,默认使用443端口,但是即便使用的协议不需要对应的端口,也不能禁止访问44380这两个端口】。

(4)如果没有声明protocols参数,让其成为一个空数组。否则,如果protocols参数是一个字符串,就让其变成包含这个字符串的数组。

(5)如果protocols参数中的任何一个变量被声明了超过以此,或者没有满足①的需求,就抛出SyntaxError异常并且终止下面的步骤。

(6)Let origin be the ASCII serialization of the origin of the entry script, converted to ASCII lowercase.

(7)返回一个新的WebSocket对象,并且在后台程序中继续执行下面的步骤。

(8)建立一个包含给出的host, port, resource name, and secure以及protocols列表,并且一个空的扩展(extensions)列表和originWebSocket连接。头部要想发送正确的cookies必须使用Cookie头,其中的值是通过用户存储的cookie值以及url计算出来的。出于这些目的,这不是一个没有HTTP协议的API

在“WebSocket建立连接算法”执行期间,当用户代理验证服务器的响应时,如果从服务器收到的状态码不是101,用户代理必须终止这次WebSocket连接。

警告!这里使用HTTP处理可能会对浏览器上下文环境造成严重的安全隐患。例如,设想一个主机是使用WebSocket在一个路径上建立的服务器,一个开放的HTTP重定向指向另一个路径。突然,任何被指定了一个特定的WebSocket URL的脚本都可以进入这个服务并和其他的主机在网上进行沟通,即时脚本检查了URL为正确的主机名。

注意:如果WebSocket连接算法执行失败了,会触发WebSocket连接失败算法,这个算法会执行关闭WebSocket连接的算法,这就会将WebSocket连接关闭,触发close事件,执行步骤如下面所描述的。

当脚本的全局对象是Window对象或者是一个通过WorkerUtils接口实例化的对象时,这个构造函数必须是可见的。

url属性必须是从为构造函数传递的URL解析出来的。

readyState属性表示了连接的状态,它有如下几个值:

CONNECTING,对应的值是0,表示连接还没有被建立;

OPEN,对应的值是1,表示WebSocket连接已经建立了,并且可以进行通信;

CLOSING,对应值是2,表示连接正在进行关闭握手,或者close()方法已经被调用;

CLOSED,对应值是3,表示连接已经被关闭或者无法打开连接。

WebSocket实例化对象被创建时,它的readyState值必须设定为CONNESTING

extensions属性初始值必须是一个空的字符串。当WebSocket连接建立后,它的值可以按照如下规则改变。

注意:如果服务器选择了扩展,extension属性返回的服务器选择的扩展。(目前这个字段一直是一个空字段)

protocol属性初始化必须是一个空的字符串。当WebSocket连接建立后,它的值可以按照如下规则改变。

注意:如果服务器指定了子协议,protocol属性返回服务器选择的子协议。

close()方法必须按照下面的步骤执行:

(1)如果这个方法传递了第一个参数但是不等于1000或者不在30004999之内,抛出InvalidAccessError异常并终止下面的步骤。

(2)如果传入了第二个参数,就执行下面的子步骤:

  ①让raw reason成为方法的第二个参数

  ②(后面省略)

(3)执行下面第一个匹配到的步骤

  ①如果readyState属性是CLOSING或者CLOSED,什么也不发生。

  ②如果WebSocket连接还没有建立,终止WebSocket连接的建立并且将readyState的属性值设置为CLOSING

  ③如果WebSocket的关闭握手还没有开始,启动WebSocket的关闭握手,并且将readyState设置成CLOSING。如果传递了第一个参数,那么WebSocket关闭报文使用的状态码必须是第一个参数指定的整数。如果第二个参数也声明了,必须在关闭报文的状态码后面给出reason

  ④其他情况,将readyState属性值设置成CLOSING

Atas ialah kandungan terperinci 详细介绍WebSocket API HTML5规范翻译. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
H5: Bagaimana ia meningkatkan pengalaman pengguna di webH5: Bagaimana ia meningkatkan pengalaman pengguna di webApr 19, 2025 am 12:08 AM

H5 meningkatkan pengalaman pengguna web dengan sokongan multimedia, penyimpanan luar talian dan pengoptimuman prestasi. 1) Sokongan multimedia: H5 dan Elemen Memudahkan pembangunan dan meningkatkan pengalaman pengguna. 2) Penyimpanan Luar Talian: WebStorage dan IndexedDB membenarkan penggunaan luar talian untuk meningkatkan pengalaman. 3) Pengoptimuman Prestasi: Pekerja web dan elemen mengoptimumkan prestasi untuk mengurangkan penggunaan jalur lebar.

Dekonstruktur Kod H5: Tag, Elemen, dan AtributDekonstruktur Kod H5: Tag, Elemen, dan AtributApr 18, 2025 am 12:06 AM

Kod HTML5 terdiri daripada tag, elemen dan atribut: 1. Tag mentakrifkan jenis kandungan dan dikelilingi oleh kurungan sudut, seperti. 2. Unsur terdiri daripada tag permulaan, kandungan dan tag akhir, seperti kandungan. 3. Atribut menentukan pasangan nilai utama dalam tag permulaan, meningkatkan fungsi, seperti. Ini adalah unit asas untuk membina struktur web.

Memahami Kod H5: Asas HTML5Memahami Kod H5: Asas HTML5Apr 17, 2025 am 12:08 AM

HTML5 adalah teknologi utama untuk membina laman web moden, menyediakan banyak elemen dan ciri -ciri baru. 1. HTML5 memperkenalkan unsur -unsur semantik seperti, dan lain -lain, yang meningkatkan struktur laman web dan SEO. 2. Sokongan unsur multimedia dan menanamkan media tanpa pemalam. 3. Borang meningkatkan jenis input baru dan sifat pengesahan, memudahkan proses pengesahan. 4. Menawarkan fungsi storan luar talian dan tempatan untuk meningkatkan prestasi laman web dan pengalaman pengguna.

Kod H5: Amalan Terbaik untuk Pemaju WebKod H5: Amalan Terbaik untuk Pemaju WebApr 16, 2025 am 12:14 AM

Amalan terbaik untuk kod H5 termasuk: 1. Gunakan pengisytiharan dan pengekodan watak yang betul; 2. Gunakan tag semantik; 3. Mengurangkan permintaan HTTP; 4. Gunakan pemuatan asynchronous; 5. Mengoptimumkan imej. Amalan ini dapat meningkatkan kecekapan, penyelenggaraan dan pengalaman pengguna halaman web.

H5: Evolusi piawaian dan teknologi webH5: Evolusi piawaian dan teknologi webApr 15, 2025 am 12:12 AM

Piawaian dan teknologi web telah berkembang dari HTML4, CSS2 dan JavaScript mudah setakat ini dan telah menjalani perkembangan yang ketara. 1) HTML5 memperkenalkan API seperti kanvas dan webstorage, yang meningkatkan kerumitan dan interaktiviti aplikasi web. 2) CSS3 menambah fungsi animasi dan peralihan untuk menjadikan halaman lebih berkesan. 3) JavaScript meningkatkan kecekapan pembangunan dan kebolehbacaan kod melalui sintaks moden node.js dan ES6, seperti fungsi anak panah dan kelas. Perubahan ini telah mempromosikan pembangunan pengoptimuman prestasi dan amalan terbaik aplikasi web.

Adakah H5 adalah singkat untuk HTML5? Meneroka butiranAdakah H5 adalah singkat untuk HTML5? Meneroka butiranApr 14, 2025 am 12:05 AM

H5 bukan sekadar singkatan HTML5, ia mewakili ekosistem teknologi pembangunan web moden yang lebih luas: 1. H5 termasuk HTML5, CSS3, JavaScript dan API dan Teknologi yang berkaitan; 2. Ia menyediakan pengalaman pengguna yang lebih kaya, interaktif dan lancar, dan boleh berjalan dengan lancar pada pelbagai peranti; 3. Menggunakan timbunan teknologi H5, anda boleh membuat laman web responsif dan fungsi interaktif yang kompleks.

H5 dan HTML5: Istilah yang biasa digunakan dalam pembangunan webH5 dan HTML5: Istilah yang biasa digunakan dalam pembangunan webApr 13, 2025 am 12:01 AM

H5 dan HTML5 merujuk kepada perkara yang sama, iaitu HTML5. HTML5 adalah versi kelima HTML, membawa ciri -ciri baru seperti tag semantik, sokongan multimedia, kanvas dan grafik, penyimpanan luar talian dan penyimpanan tempatan, meningkatkan ekspresi dan interaktiviti laman web.

Apa yang dirujuk oleh H5? Meneroka konteksApa yang dirujuk oleh H5? Meneroka konteksApr 12, 2025 am 12:03 AM

H5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enhancusexperienceaceacrossdevices.3) SemantikelementsImproveContentstructureandseo.4) H5'srespo

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa