Какво е Socket.IO?

Socket.IO е JavaScript библиотека, която позволява реално време, двупосочна комуникация между уеб клиенти и сървъри. Въпреки че използва WebSocket като основен транспорт, тя автоматично се връща към HTTP long-polling, когато WebSocket не е достъпен, което прави връзките по-надеждни в различни мрежови среди и прокси сървъри. Socket.IO добавя свой собствен протоколен слой върху сирия транспорт — включително персонализирано握手, сърцебиене, автоматично преконектване и система с именувани събития — така че не е взаимозаменяема с обикновен WebSocket сървър.

Ключова характеристика на Socket.IO е неговият модел на събития: вместо да изпращат сирови съобщения, клиентите и сървърите излъчват и слушат именувани събития (напр. chat message, user joined), което прави логиката на приложението по-чиста и по-лесна за организиране.

Описание на инструмента

Този инструмент предоставя интерактивен Socket.IO клиент, който работи изцяло в браузъра. Свържете се с всеки Socket.IO сървър, изберете именувано събитие, съставете текстови или JSON съобщения, изпратете ги и наблюдавайте входящите събития и отговорите на сървъра да се появяват в дневник с времеви печат. Той също така показва активния транспортен слой (WebSocket или polling), така че можете да проверите дали е възникнало очаквано подобрение.

Функции

  • Поддръжка на именувани събития — посочете всяко име на събитие преди изпращане, така че съобщенията да пристигнат под правилния слушател на сървъра.
  • Видимост на транспорта — показва дали връзката използва WebSocket или HTTP polling транспорт и се актуализира автоматично след завършване на握手 за подобрение на Socket.IO.
  • Текстови и JSON режими — съставяйте полезни товари в обикновен текст или преминете в JSON режим със синтактично маркиране и валидиране преди изпращане.

Обяснени опции

Server URL — пълният HTTP(S) URL на Socket.IO сървъра (напр. https://example.com/socketio). Socket.IO сървърите често слушат на пътека като /socket.io/; клиентът автоматично обработва握手 пътеката.

Event name — името на Socket.IO събитието, което трябва да се излъчи при изпращане на съобщение. По подразбиране е message. Променете това, за да съответства на събитието, което вашият сървър слуша (напр. chat, ping, data).

Data type — преминете между Text и JSON. В JSON режим полезният товар се валидира и изпраща като разпарсен обект; в текстов режим се изпраща като обикновен низ.

Auto-scroll — когда е активирано, дневникът на съобщенията автоматично се превърта до последния запис, когато пристигнат нови съобщения.

Как работи

Клиентът се свързва с целевия сървър, използвайки официалния Socket.IO JavaScript SDK. След първоначалното握手на HTTP, Socket.IO се опитва да подобри транспорта от HTTP polling към WebSocket. Инструментът докладва кой транспорт е активен и актуализира етикета всеки път, когато възникне подобрение. Всички събития, получени от сървъра — независимо от името на събитието — се улавят и показват в дневника с времеви печат.

Съвети

  • Ако връзката е успешна, но не се появяват съобщения, потвърдете, че сървърът излъчва събития обратно към свързания клиент, а не само към други клиенти.
  • Използвайте полето с име на събитие, за да тествате обработчиците на сървърната страна поотделно без писане на код.
  • "Polling" транспорт, който никога не се подобрява до "websocket", често показва обратен прокси, който не поддържа WebSocket подобрения (напр. балансьор на натоварване без залепящи сесии).