WebSocket - двунаправленное сетевое соединение, подобное сокету

class WebSocket(url[, protokols])

Наследник EventTarget

bufferedAmount

Ко­ли­че­ст­во сим­во­лов со­об­ще­ния, пе­ре­дан­но­го ме­то­ду send(), ко­то­рые еще не бы­ли от­прав­ле­ны фак­ти­че­ски. Это свой­ст­во мож­но ис­поль­зо­вать при пе­ре­да­че боль­ших объ­е­мов дан­ных, что­бы га­ран­ти­ро­вать, что про­грам­ма не бу­дет от­прав­лять со­об­ще­ния бы­ст­рее, чем они мо­гут быть пе­ре­да­ны по се­ти.

onclose

Со­бы­тие «close» ге­не­ри­ру­ет­ся по­сле за­кры­тия со­еди­не­ния (и свой­ст­во readyState по­лу­чит зна­че­ние CLOSED). Об­ра­бот­чи­ку со­бы­тия пе­ре­да­ет­ся объ­ект CloseEvent, ко­то­рый оп­ре­де­ля­ет, бы­ло со­еди­не­ние за­кры­то без оши­бок или нет.

onerror

Со­бы­тие «error» ге­не­ри­ру­ет­ся, ко­гда воз­ни­ка­ет се­те­вая ошиб­ка или ошиб­ка про­то­ко­ла веб-со­ке­тов. Об­ра­бот­чи­ку со­бы­тия пе­ре­да­ет­ся обыч­ный объ­ект Event.

onmessage

Ко­гда сер­вер от­прав­ля­ет дан­ные че­рез веб-со­кет, объ­ект WebSocket воз­бу­ж­да­ет со­бы­тие «message» и пе­ре­да­ет об­ра­бот­чи­ку объ­ект MessageEvent, свой­ст­во data ко­то­ро­го ссы­ла­ет­ся на при­ня­тое со­об­ще­ние.

onopen

Кон­ст­рук­тор WebSocket() воз­вра­ща­ет управ­ле­ние еще до то­го, как бу­дет ус­та­нов­ле­но со­еди­не­ние с ад­ре­сом url. Ко­гда про­це­ду­ра ус­та­нов­ле­ния со­еди­не­ния за­вер­шит­ся и объ­ект WebSocket бу­дет го­тов к от­прав­ке и прие­му дан­ных, бу­дет воз­бу­ж­де­носо­бы­тие «open». Об­ра­бот­чи­ку со­бы­тия пе­ре­да­ет­ся обыч­ный объ­ект Event.

protocol

Ес­ли кон­ст­рук­то­ру WebSocket() был пе­ре­дан мас­сив под­про­то­ко­лов, это свой­ст­во бу­дет хра­нить один из них, вы­бран­ный сер­ве­ром. Об­ра­ти­те вни­ма­ние, что в пер­вый мо­мент по­сле соз­да­ния объ­ек­та WebSocket со­еди­не­ние еще не ус­та­нов­ле­но и вы­бор сер­ве­ра не­из­вес­тен, по­это­му пер­во­на­чаль­но это свой­ст­во со­дер­жит пус­тую стро­ку. Ес­ли кон­ст­рук­то­ру был пе­ре­дан спи­сок про­то­ко­лов, зна­че­ние это­го свой­ст­ва из­ме­нит­ся в со­от­вет­ст­вии с вы­бо­ром сер­ве­ра, ко­гда бу­дет сге­не­ри­ро­ва­но со­бы­тие «open».

readyState

Те­ку­щее со­стоя­ние со­еди­не­ния.

  • CONNECTING = 0, Про­дол­жа­ет­ся вы­пол­не­ние про­це­ду­ры ус­та­нов­ле­ния со­еди­не­ния.

  • OPEN = 1, Объ­ект WebSocket со­еди­нен с сер­ве­ром; мож­но от­прав­лять и при­ни­мать со­об­ще­ния.

  • CLOSING = 2, Со­еди­не­ние за­кры­ва­ет­ся.

  • CLOSED = 3, Со­еди­не­ние за­кры­то.

url

Это свой­ст­во хра­нит URL-ад­рес, ко­то­рый был пе­ре­дан кон­ст­рук­то­ру WebSocket().

close()

Ес­ли со­еди­не­ние еще не за­кры­то или для не­го еще не бы­ла за­пу­ще­на про­це­ду­ра за­кры­тия, этот ме­тод ини­ции­ру­ет про­цесс его за­кры­тия и при­сваи­ва­ет свой­ст­ву readyState зна­че­ние CLOSING. Со­бы­тия «message» мо­гут про­дол­жать воз­бу­ж­дать­ся да­же по­сле вы­зо­ва ме­то­да close(), по­ка свой­ст­во readyState не по­лу­чит зна­че­ние CLOSED и не бу­дет воз­бу­ж­де­но со­бы­тие «close».

send(string data)

От­прав­ля­ет дан­ные data на сер­вер, под­клю­чен­ный к дру­го­му кон­цу со­еди­не­ния. Этот ме­тод воз­бу­ж­да­ет ис­клю­че­ние, ко­гда вы­зы­ва­ет­ся до то­го, как бу­дет сге­не­ри­ро­ва­но со­бы­тие «open», т. е. по­ка свой­ст­во readyState име­ет зна­че­ние CONNECTING. Про­то­кол веб-со­ке­тов под­дер­жи­ва­ет об­мен дво­ич­ны­ми дан­ны­ми, но на мо­мент на­ пи­са­ния этих строк те­ку­щая вер­сия при­клад­но­го ин­тер­фей­са веб-со­ке­тов под­дер­жи­ва­ла толь­ко тек­сто­вые со­об­ще­ния.