25 āļ•.āļ„. 2566·āļ­āđˆāļēāļ™ 2 āļ™āļēāļ—āļĩ

WebSocket Protocol: āđ€āļˆāļēāļ°āļĨāļķāļāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™

āļ„āđ‰āļ™āļžāļšāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ– āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđāļĨāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđƒāļ™āđ‚āļĨāļāđāļŦāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļīāļ‡āļ‚āļ­āļ‡ WebSocket Protocol āļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļŠāļīāļ‡āļĨāļķāļāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļĨāļ°āļ„āļļāļ“āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļ‚āļ­āļ‡āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ HTTP āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ

WebSocket Protocol: āđ€āļˆāļēāļ°āļĨāļķāļāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™

WebSocket Protocol āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļ­āļģāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļœāđˆāļēāļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĄāļĩāļ­āļēāļĒāļļāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļĒāļēāļ§āļ™āļēāļ™ āđāļ•āļāļ•āđˆāļēāļ‡āļˆāļēāļāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ HTTP āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ WebSocket āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŸāļđāļĨāļ”āļđāđ€āļžāļĨāđ‡āļāļ‹āđŒāđ„āļ”āđ‰ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļēāļĄāļēāļĢāļ–āđ„āļŦāļĨāđ„āļ›āļžāļĢāđ‰āļ­āļĄ āđ† āļāļąāļ™āđƒāļ™āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡ āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ āđ€āļŠāđˆāļ™ āđ€āļāļĄāļ­āļ­āļ™āđ„āļĨāļ™āđŒ āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļŠāļ— āđāļĨāļ°āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļāļēāļĢāļ‹āļ·āđ‰āļ­āļ‚āļēāļĒāļŦāļļāđ‰āļ™ āļ‹āļķāđˆāļ‡āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āļ•āđˆāļģ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāđ„āļ”āđ‰āļ–āļķāļ‡āļāļēāļĢāļ–āđˆāļēāļĒāđ‚āļ­āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āļĨāļ”āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđāļĨāļ°āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļœāļđāđ‰āđƒāļŠāđ‰ WebSocket āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļ‚āļēāļ”āđ„āļĄāđˆāđ„āļ”āđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļĨāļ°āļšāļĢāļīāļāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļ—āļąāļ™āļŠāļĄāļąāļĒ

WebSocket āļāļąāļš HTTP āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ

WebSocket Protocol āđāļĨāļ° HTTP āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄāđ€āļ›āđ‡āļ™āļ—āļąāđ‰āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ āđāļ•āđˆāļĢāļ­āļ‡āļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđāļĨāļ°āļĄāļĩāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļ›āļĢāļ°āđ€āļ”āđ‡āļ™āļŦāļĨāļąāļāļ‚āļ­āļ‡āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ WebSocket āđāļĨāļ° HTTP āļĄāļĩāļ”āļąāļ‡āļ™āļĩāđ‰:

  • āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŸāļđāļĨāļ”āļđāđ€āļžāļĨāđ‡āļāļ‹āđŒāļāļąāļšāļŪāļēāļĨāđŒāļŸāļ”āļđāđ€āļžāļĨāđ‡āļāļ‹āđŒ: WebSocket āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļŸāļđāļĨāļ”āļđāđ€āļžāļĨāđ‡āļāļ‹āđŒ āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ–āđˆāļēāļĒāđ‚āļ­āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļžāļĢāđ‰āļ­āļĄāļāļąāļ™āđ„āļ”āđ‰āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡ āđƒāļ™āļ—āļēāļ‡āļāļĨāļąāļšāļāļąāļ™ HTTP āđāļšāļšāđ€āļ”āļīāļĄāđƒāļŠāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŪāļēāļĨāđŒāļŸāļ”āļđāđ€āļžāļĨāđ‡āļāļ‹āđŒ āđ‚āļ”āļĒāļ—āļĩāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļ°āļ–āļđāļāļŠāđˆāļ‡āđāļĨāļ°āļĢāļąāļšāļŠāļĨāļąāļšāļāļąāļ™ āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āđ€āļ§āļĨāļēāđāļāļ‡āļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™
  • āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļšāļšāļ–āļēāļ§āļĢāđ€āļ—āļĩāļĒāļšāļāļąāļšāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļšāļšāđ„āļĢāđ‰āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­: āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļĒāļąāļ‡āļ„āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļ•āļĨāļ­āļ”āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđƒāļ™āļ—āļēāļ‡āļ•āļĢāļ‡āļāļąāļ™āļ‚āđ‰āļēāļĄ HTTP āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđ„āļĢāđ‰āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ„āļģāļ‚āļ­-āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āđāļ•āđˆāļĨāļ°āļ„āļĢāļąāđ‰āļ‡āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđƒāļŦāļĄāđˆāđ€āļžāļ·āđˆāļ­āđ€āļ›āļīāļ”āđāļĨāļ°āļ›āļīāļ” āļŠāđˆāļ‡āļœāļĨāđƒāļŦāđ‰āļĄāļĩāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđāļĨāļ°āļĨāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļĨāļ‡
  • āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āđ€āļ§āļĨāļēāđāļāļ‡: WebSocket Protocol āļĢāļąāļāļĐāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļšāļšāđ€āļ›āļīāļ”āđ€āļ”āļĩāļĒāļ§āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāļĨāļ”āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđāļĨāļ°āđ€āļ§āļĨāļēāđāļāļ‡āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļāđ‡āļ•āļēāļĄ āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ HTTP āļ­āļēāļĻāļąāļĒāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ„āļģāļ‚āļ­āđāļĨāļ°āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ āļ‹āļķāđˆāļ‡āļˆāļ°āđ€āļžāļīāđˆāļĄāđ‚āļ­āđ€āļ§āļ­āļĢāđŒāđ€āļŪāļ”āđāļĨāļ°āļŠāđˆāļ‡āļœāļĨāđ€āļŠāļĩāļĒāļ•āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™
  • āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩāđāļĨāļ°āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ: WebSocket āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩāđāļĨāļ°āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ„āļ”āđ‰ āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆ HTTP āđ€āļ›āđ‡āļ™āđāļšāļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŦāļĨāļąāļ āļ‹āļķāđˆāļ‡āļˆāļģāļāļąāļ”āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩāđˆāļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž
  • āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļŠāļ•āļĢāļĩāļĄ: WebSocket āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļŠāļ•āļĢāļĩāļĄāļ‚āđ‰āļ­āļĄāļđāļĨ āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđāļšāđˆāļ‡āđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ”āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāļīāđ‰āļ™āđ€āļĨāđ‡āļ āđ† āđāļĨāļ°āļŠāđˆāļ‡āļ—āļĩāļĨāļ°āļ™āđ‰āļ­āļĒ āđƒāļ™āļ—āļēāļ‡āļ•āļĢāļ‡āļāļąāļ™āļ‚āđ‰āļēāļĄ HTTP āļāļģāļŦāļ™āļ”āđƒāļŦāđ‰āļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļ„āļĢāļēāļ§āđ€āļ”āļĩāļĒāļ§ āļŠāđˆāļ‡āļœāļĨāđƒāļŦāđ‰āļāļēāļĢāđƒāļŠāđ‰āļ—āļĢāļąāļžāļĒāļēāļāļĢāđāļĨāļ°āđ€āļ§āļĨāļēāļ•āļ­āļšāļŠāļ™āļ­āļ‡āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™

āļ”āđ‰āļ§āļĒāļ‚āđ‰āļ­āļ”āļĩāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ WebSocket āļˆāļķāļ‡āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđāļĨāļ°āļāļēāļĢāļ–āđˆāļēāļĒāđ‚āļ­āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāđ€āļ§āļĨāļēāđāļāļ‡āļ•āđˆāļģ āļ”āđ‰āļ§āļĒāļāļēāļĢāļĢāļąāļāļĐāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļšāļšāļ–āļēāļ§āļĢ WebSocket āļŠāđˆāļ§āļĒāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļœāļđāđ‰āđƒāļŠāđ‰āđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļšāļ™āđ€āļ§āđ‡āļšāđāļĨāļ°āļĄāļ·āļ­āļ–āļ·āļ­

WebSocket Protocol āļ—āļģāļ‡āļēāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ

WebSocket Protocol āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ‚āļ”āļĒāđƒāļŠāđ‰āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĄāļĩāļ­āļēāļĒāļļāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļĒāļēāļ§āļ™āļēāļ™ āđ‚āļ”āļĒāļžāļ·āđ‰āļ™āļāļēāļ™āđāļĨāđ‰āļ§ WebSocket āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļˆāļēāļāļ™āļąāđ‰āļ™āđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļŠāđˆāļ§āļ™āđ€āļĨāđ‡āļāđ† āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē "āđ€āļŸāļĢāļĄ" āļ•āđˆāļ­āđ„āļ›āļ™āļĩāđ‰āļ„āļ·āļ­āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ WebSocket Protocol:

  1. WebSocket Handshake: āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āļ—āļĩāđˆāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđ‚āļ”āļĒāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āļāļąāļ™āļ™āļĩāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļ„āļģāļ‚āļ­ HTTP āļĄāļēāļ•āļĢāļāļēāļ™āļžāļĢāđ‰āļ­āļĄāļŠāđˆāļ§āļ™āļŦāļąāļ§ "āļ­āļąāļ›āđ€āļāļĢāļ”" āļžāļīāđ€āļĻāļĐ āļ‹āļķāđˆāļ‡āļˆāļ°āļŠāđˆāļ‡āļŠāļąāļāļāļēāļ“āđƒāļŦāđ‰āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļˆāļēāļāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨ HTTP āđ€āļ›āđ‡āļ™ WebSocket āļŦāļēāļāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļĢāļ­āļ‡āļĢāļąāļš WebSocket āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ”āđ‰āļ§āļĒāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ "āļ­āļąāļ›āđ€āļāļĢāļ”" āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āļ—āļģāļāļēāļĢāđāļŪāļ™āļ”āđŒāđ€āļŠāļ„āđƒāļŦāđ‰āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™ āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket
  2. WebSocket Frames: āđ€āļĄāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļĨāđ‰āļ§ āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļ°āļ–āļđāļāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļŸāļĢāļĄ WebSocket āđ€āļŸāļĢāļĄāļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļŠāđˆāļ§āļ™āļŦāļąāļ§āļ—āļĩāđˆāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄ āļ•āļēāļĄāļ”āđ‰āļ§āļĒāđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ” āđ€āļŸāļĢāļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āđ‡āļ™āđ„āļ”āđ‰āļ—āļąāđ‰āļ‡āđ€āļŸāļĢāļĄāļ„āļ§āļšāļ„āļļāļĄāļŦāļĢāļ·āļ­āđ€āļŸāļĢāļĄāļ‚āđ‰āļ­āļĄāļđāļĨ āđ‚āļ”āļĒāđ€āļŸāļĢāļĄāļ„āļ§āļšāļ„āļļāļĄāļˆāļ°āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļĨāļ°āđ€āļŸāļĢāļĄāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļŦāļĢāļ·āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩ
  3. āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket: āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āđāļĨāļ°āļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļ”āđ‰āļžāļĢāđ‰āļ­āļĄāļāļąāļ™ āļĨāļ”āļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļĒāļąāļ‡āļ„āļ‡āđ€āļ›āļīāļ”āļ­āļĒāļđāđˆāļˆāļ™āļāļ§āđˆāļēāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļŦāļĢāļ·āļ­āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļ›āļīāļ”āļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđ€āļˆāļ™ āļŦāļĢāļ·āļ­āļˆāļ™āļāļ§āđˆāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļˆāļ°āļ–āļđāļāļ‚āļąāļ”āļˆāļąāļ‡āļŦāļ§āļ°āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāļŦāļĢāļ·āļ­āļ›āļąāļāļŦāļēāļ­āļ·āđˆāļ™ āđ†

WebSocket Protocol āļŠāđˆāļ§āļĒāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļēāļ āļ—āļģāđƒāļŦāđ‰āđ€āļ›āđ‡āļ™āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāļŠāļģāļ„āļąāļāļ‚āļ­āļ‡āļāļēāļĢāļžāļąāļ’āļ™āļēāđ€āļ§āđ‡āļšāļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆ āļ”āđ‰āļ§āļĒāļāļēāļĢāļĢāļąāļāļĐāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļ„āļ‡āļ­āļĒāļđāđˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ WebSocket āļˆāļ°āļĨāļ”āļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒ āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđāļĨāļ°āļĄāļ­āļšāļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļĩāđˆāđ€āļŦāļ™āļ·āļ­āļāļ§āđˆāļēāđƒāļŦāđ‰āļāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰āļ›āļĨāļēāļĒāļ—āļēāļ‡

WebSocket Handshake: āļ­āļąāļ›āđ€āļāļĢāļ”āļˆāļēāļ HTTP

āļāđˆāļ­āļ™āļ—āļĩāđˆāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāđ‚āļ”āļĒāđƒāļŠāđ‰ WebSocket Protocol āļžāļ§āļāđ€āļ‚āļēāļˆāļ°āļ•āđ‰āļ­āļ‡āļ—āļģāļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­ WebSocket āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļ„āļģāļ‚āļ­ HTTP āļ‹āļķāđˆāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āļˆāļ°āļ­āļąāļ›āđ€āļāļĢāļ”āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āđ„āļ”āđ‰

āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āļāļąāļ™āđ‚āļ”āļĒāļŠāđˆāļ‡āļ„āļģāļ‚āļ­ HTTP GET āđ„āļ›āļĒāļąāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļĢāļ§āļĄāļ–āļķāļ‡āļŠāđˆāļ§āļ™āļŦāļąāļ§ "āļ­āļąāļ›āđ€āļāļĢāļ”" āđāļĨāļ° "āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­" āļ‹āļķāđˆāļ‡āļĢāļ°āļšāļļāļ–āļķāļ‡āļ„āļ§āļēāļĄāļ•āļąāđ‰āļ‡āđƒāļˆāļ—āļĩāđˆāļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ„āļģāļ‚āļ­āļĒāļąāļ‡āļĄāļĩāļŠāđˆāļ§āļ™āļŦāļąāļ§ Sec-WebSocket-Key āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļ„āđˆāļēāļŠāļļāđˆāļĄāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ base64 āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āđ‚āļ”āļĒāđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒ āļ„āđˆāļēāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļąāļ”āļāļēāļĢāđāļĨāļ°āļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ•āđˆāļ­āļ„āļģāļ‚āļ­āđāļŪāļ™āļ”āđŒāđ€āļŠāļ„āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡

 GET /websocket HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13 Origin: http://example.com

āđ€āļĄāļ·āđˆāļ­āđ„āļ”āđ‰āļĢāļąāļšāļ„āļģāļ‚āļ­ āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āđˆāļēāđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš WebSocket Protocol āļŦāļēāļāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ”āđ‰āļ§āļĒāļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ° HTTP 101 Switching Protocols āļžāļĢāđ‰āļ­āļĄāļ”āđ‰āļ§āļĒāļŠāđˆāļ§āļ™āļŦāļąāļ§ "āļ­āļąāļ›āđ€āļāļĢāļ”" āđāļĨāļ° "āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­" āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļĒāļąāļ‡āļŠāļĢāđ‰āļēāļ‡āļ„āđˆāļē Sec-WebSocket-Accept āļ—āļĩāđˆāđ„āļĄāđˆāļ‹āđ‰āļģāļāļąāļ™āđ‚āļ”āļĒāļāļēāļĢāđāļŪāļŠ Sec-WebSocket-Key āļ‚āļ­āļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāļ”āđ‰āļ§āļĒ GUID āļ„āļ‡āļ—āļĩāđˆāđāļĨāļ°āļŠāđˆāļ‡āļāļĨāļąāļšāđƒāļ™āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš

 HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

āđ€āļĄāļ·āđˆāļ­āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđ„āļ”āđ‰āļĢāļąāļšāđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļˆāļ°āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™ āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ

WebSocket Frames: āļāļēāļĢāļˆāļąāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

āļŦāļĨāļąāļ‡āļˆāļēāļāļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđāļĨāđ‰āļ§ āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļ°āļ–āļđāļāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ€āļ›āđ‡āļ™āđ€āļŸāļĢāļĄ WebSocket āđ€āļŸāļĢāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket WebSocket Protocol āļāļģāļŦāļ™āļ”āļ›āļĢāļ°āđ€āļ āļ—āđ€āļŸāļĢāļĄāļ•āđˆāļēāļ‡āđ† āļĢāļ§āļĄāļ–āļķāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ āđ„āļšāļ™āļēāļĢāļĩ āđāļĨāļ°āđ€āļŸāļĢāļĄāļ„āļ§āļšāļ„āļļāļĄ āļ‹āļķāđˆāļ‡āđāļ•āđˆāļĨāļ°āļ›āļĢāļ°āđ€āļ āļ—āļĄāļĩāļˆāļļāļ”āļ›āļĢāļ°āļŠāļ‡āļ„āđŒāđ€āļ‰āļžāļēāļ°

āđ€āļŸāļĢāļĄāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļĨāļ°āđ„āļšāļ™āļēāļĢāļĩāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļāļĢāļ­āļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļĄāļĩāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ UTF-8 āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāđ€āļŸāļĢāļĄāđ„āļšāļ™āļēāļĢāļĩāđˆāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļšāļ™āļēāļĢāļĩāđˆāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ āđ€āļŸāļĢāļĄāļ„āļ§āļšāļ„āļļāļĄāđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āđāļĨāļ°āļĢāļ§āļĄāļ–āļķāļ‡āļ›āļĢāļ°āđ€āļ āļ—āļ•āđˆāļēāļ‡āđ† āđ€āļŠāđˆāļ™ āļ›āļīāļ‡ āļ›āļīāļ‡āļ›āļ­āļ‡ āđāļĨāļ°āđ€āļŸāļĢāļĄāļ›āļīāļ” āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰āđ€āļŸāļĢāļĄāļ›āļīāļ‡āđāļĨāļ°āļ›āļ­āļ‡āđ€āļžāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļŠāļĄāļšāļđāļĢāļ“āđŒāļ‚āļ­āļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāđ€āļŸāļĢāļĄāļ›āļīāļ”āļˆāļ°āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļēāļĢāļ›āļīāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­

āđ€āļŸāļĢāļĄāļ‚āļ­āļ‡ WebSocket āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļŦāļĨāļēāļĒāļŠāđˆāļ§āļ™:

  • FIN Bit: āļšāļīāļ•āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĢāļ°āļšāļļāđ€āļŸāļĢāļĄāļŠāļļāļ”āļ—āđ‰āļēāļĒāđƒāļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ
  • Opcode: āļ„āđˆāļē 4 āļšāļīāļ•āļ—āļĩāđˆāļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āđ€āļŸāļĢāļĄ (āđ€āļŠāđˆāļ™ āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ āđ„āļšāļ™āļēāļĢāļĩāđˆ āļŦāļĢāļ·āļ­āļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄ)
  • Mask Bit: āļšāļīāļ•āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĢāļ°āļšāļļāļ§āđˆāļēāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ”āļ–āļđāļāļĄāļēāļŠāļāđŒāļŦāļĢāļ·āļ­āđ„āļĄāđˆ
  • āļ„āļ§āļēāļĄāļĒāļēāļ§āļ‚āļ­āļ‡āđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ”: āļ„āđˆāļē 7 āļšāļīāļ•, 16 āļšāļīāļ• āļŦāļĢāļ·āļ­ 64 āļšāļīāļ•āļ—āļĩāđˆāđāļŠāļ”āļ‡āļ–āļķāļ‡āļ„āļ§āļēāļĄāļĒāļēāļ§āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ”
  • Masking Key: āļ„āđˆāļē 32 āļšāļīāļ•āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ€āļ›āļīāļ”āđ‚āļ›āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ” (āļŦāļēāļāļĄāļēāļŠāļāđŒ)
  • āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļžāļĒāđŒāđ‚āļŦāļĨāļ”: āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļŸāļĢāļĄāļŠāđˆāļ‡āļĄāļē

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāđ„āļ”āđ‰āļ–āļķāļ‡āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ‚āļ”āļĒāļāļēāļĢāļˆāļąāļ”āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āđ€āļŸāļĢāļĄ WebSocket

WebSocket Subprotocols: āļāļēāļĢāļ‚āļĒāļēāļĒāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļāļēāļ™

āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ™āļ§āļ„āļīāļ”āđ€āļ›āđ‡āļ™āđāļ­āļ›āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰
āļĒāđ‰āļēāļĒāļˆāļēāļāļ—āļĪāļĐāļŽāļĩāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļŠāļđāđˆāļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒāļ—āļĩāđˆāđƒāļŠāđ‰ WebSocket āđ„āļ”āđ‰āļˆāļĢāļīāļ‡āļ”āđ‰āļ§āļĒāđ€āļ§āļīāļĢāđŒāļāđ‚āļŸāļĨāļ§āđŒāđāļšāļšāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”
āļŠāļĄāļąāļ„āļĢāđƒāļŠāđ‰āļ‡āļēāļ™

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒ WebSocket āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđ€āļ‰āļžāļēāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļˆāļēāļ WebSocket Protocol āļžāļ·āđ‰āļ™āļāļēāļ™ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļāļŽāđāļĨāļ°āđāļšāļšāđāļœāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļ‰āļžāļēāļ° āļ‹āļķāđˆāļ‡āļ‚āļĒāļēāļĒāļ‚āļĩāļ”āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ WebSocket āđƒāļŦāđ‰āļ”āļĩāļĒāļīāđˆāļ‡āļ‚āļķāđ‰āļ™ āđƒāļ™āļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒāļ—āļĩāđˆāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļžāļ·āđ‰āļ™āļāļēāļ™āđ„āļĄāđˆāļĄāļĩāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ—āļĩāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļˆāļ°āđ€āļ‚āđ‰āļēāļĄāļēāļĄāļĩāļšāļ—āļšāļēāļ—āđ€āļžāļ·āđˆāļ­āđ€āļžāļīāđˆāļĄāļ„āļļāļ“āļ„āđˆāļēāđƒāļŦāđ‰āļāļąāļšāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ–āļđāļāļāļģāļŦāļ™āļ”āđ‚āļ”āļĒāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­ WebSocket āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļĢāļ§āļĄāļŠāđˆāļ§āļ™āļŦāļąāļ§ Sec-WebSocket-Protocol āđƒāļ™āļ„āļģāļ‚āļ­āļˆāļąāļšāļĄāļ·āļ­āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āđ‚āļ”āļĒāļĢāļ°āļšāļļāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒāļŦāļ™āļķāđˆāļ‡āļĢāļēāļĒāļāļēāļĢ āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ€āļŠāđˆāļ™:

 GET /websocket HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Version: 13 Sec-WebSocket-Protocol: subprotocol1, subprotocol2 Origin: http://example.com

āđ€āļĄāļ·āđˆāļ­āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļĢāđ‰āļ­āļ‡āļ‚āļ­ āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ—āļĩāđˆāđ€āļŠāļ™āļ­ āđāļĨāļ°āđ€āļĨāļ·āļ­āļāļŦāļ™āļķāđˆāļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļ—āļĩāđˆāļŠāļ™āļąāļšāļŠāļ™āļļāļ™ āļˆāļēāļāļ™āļąāđ‰āļ™āļˆāļ°āļĢāļ§āļĄāđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ—āļĩāđˆāđ€āļĨāļ·āļ­āļāđ„āļ§āđ‰āđƒāļ™āļŠāđˆāļ§āļ™āļŦāļąāļ§ Sec-WebSocket-Protocol āđƒāļ™āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āļāļąāļ™:

 HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= Sec-WebSocket-Protocol: subprotocol1

āđ€āļĄāļ·āđˆāļ­āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­āļāļąāļ™āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™ āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļˆāļ°āļŠāļ·āđˆāļ­āļŠāļēāļĢāļāļąāļ™āđ‚āļ”āļĒāđƒāļŠāđ‰āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ—āļĩāđˆāđ€āļĨāļ·āļ­āļ āđ‚āļ”āļĒāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāđāļĨāļ°āđāļšāļšāđāļœāļ™

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒ WebSocket āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļĄāļēāļ•āļĢāļāļēāļ™āļŦāļĢāļ·āļ­āļ­āļ­āļāđāļšāļšāđ€āļ­āļ‡āđ„āļ”āđ‰ āđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļ°āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™ āđ„āļ”āđ‰āđāļāđˆ MQTT āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ­āļļāļ›āļāļĢāļ“āđŒ IoT āđāļĨāļ° XMPP āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ

WebSocket API: āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāđāļĨāļ°āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™

WebSocket API āđ€āļ›āđ‡āļ™āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ JavaScript āļ‚āļ­āļ‡ WebSocket Protocol āļŠāļģāļŦāļĢāļąāļšāđ€āļ§āđ‡āļšāđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒ āđ‚āļ”āļĒāļĄāļĩāļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹āļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ (āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ€āļ§āđ‡āļš) āđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļœāđˆāļēāļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket

āđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļāļąāļšāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļ‚āđ‰āļ­āļĄāļđāļĨāđ‚āļ„āđ‰āļ”āļ•āđˆāļ­āđ„āļ›āļ™āļĩāđ‰āļŠāļēāļ˜āļīāļ•āļ§āļīāļ˜āļĩāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒ WebSocket āđ‚āļ”āļĒāđƒāļŠāđ‰ JavaScript: ```javascript const socket = new WebSocket('ws://example.com'); ``` āđ‚āļ„āđ‰āļ”āļ”āđ‰āļēāļ™āļšāļ™āļŠāļĢāđ‰āļēāļ‡āļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒ WebSocket āđƒāļŦāļĄāđˆ āđ‚āļ”āļĒāļĢāļ°āļšāļļ URL WebSocket āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ‚āļ”āļĒāđƒāļŠāđ‰āļĢāļđāļ›āđāļšāļš 'ws' (āđ„āļĄāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ) āļŦāļĢāļ·āļ­ 'wss' (āļ›āļĨāļ­āļ”āļ āļąāļĒ) āđ€āļĄāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļĨāđ‰āļ§ āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļ•āđˆāļēāļ‡āđ† āđ€āļŠāđˆāļ™ open message error āđāļĨāļ° close āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ

āļ™āļĩāđˆāļ„āļ·āļ­āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāđƒāļŠāđ‰āļ•āļąāļ§āļˆāļąāļ”āļāļēāļĢāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļāļąāļš WebSocket API: ```javascript // Connection opens socket.addEventListener('open', (event) => { socket.send('Hello Server!'); }); // āļŸāļąāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ socket.addEventListener('message', (event) => { console.log('Message from server: ', event.data); }); // āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” socket.addEventListener('error', (event) => { console.error('WebSocket error:', event); }); // āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ›āļīāļ” socket.addEventListener('āļ›āļīāļ”', (āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒ) => { console.log('āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ›āļīāļ”:', āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒ); }); ``` WebSocket API āđƒāļŠāđ‰āđƒāļ™āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ•āđˆāļēāļ‡āđ† āļĢāļ§āļĄāļ–āļķāļ‡:

  • āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļŠāļ—: āļœāļđāđ‰āđƒāļŠāđ‰āļŠāļēāļĄāļēāļĢāļ–āđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰āļĢāļēāļĒāļ­āļ·āđˆāļ™āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ‚āļžāļĨāļšāđˆāļ­āļĒāļ„āļĢāļąāđ‰āļ‡āļŦāļĢāļ·āļ­āļĢāļĩāđ€āļŸāļĢāļŠāļ”āđ‰āļ§āļĒāļ•āļ™āđ€āļ­āļ‡
  • āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ: āļĢāļąāļšāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ—āļąāļ™āļ—āļĩāļˆāļēāļāļšāļĢāļīāļāļēāļĢāļŦāļĢāļ·āļ­āļ­āļļāļ›āļāļĢāļ“āđŒāļŠāļģāļŦāļĢāļąāļšāļāļīāļˆāļāļĢāļĢāļĄāļ•āđˆāļēāļ‡āđ† āđ€āļŠāđˆāļ™ āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āļ—āļēāļ‡āļ­āļĩāđ€āļĄāļĨ āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ‡āļēāļ™ āļŦāļĢāļ·āļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āđāļšāļšāļŦāļĨāļēāļĒāļœāļđāđ‰āđƒāļŠāđ‰
  • āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āđāļšāļšāļŠāļ”: āđāļāđ‰āđ„āļ‚āđ€āļ­āļāļŠāļēāļĢ āļŠāđ€āļ›āļĢāļ”āļŠāļĩāļ• āļŦāļĢāļ·āļ­āļāļēāļĢāļ™āļģāđ€āļŠāļ™āļ­āļžāļĢāđ‰āļ­āļĄāļāļąāļ™āļāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰āļŦāļĨāļēāļĒāļ„āļ™ āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āđāļĨāļ°āļ„āļ§āļšāļ„āļļāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĢāļēāļšāļĢāļ·āđˆāļ™

āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”

āđ€āļ›āļīāļ”āļ•āļąāļ§ MVP āđāļŠāļ—āļŠāļ”
āļ—āļģāļ•āđ‰āļ™āđāļšāļšāļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāđāļŠāļ—āļŠāļģāļŦāļĢāļąāļšāđ€āļ§āđ‡āļšāđāļĨāļ°āļĄāļ·āļ­āļ–āļ·āļ­āļšāļ™āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāđ€āļ”āļĩāļĒāļ§
āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›

āļāļēāļĢāļĢāļąāļšāļĢāļ­āļ‡āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ–āļ·āļ­āđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļŠāļģāļ„āļąāļāđƒāļ™āļāļēāļĢāļ›āļāļ›āđ‰āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļŠāļĄāļšāļđāļĢāļ“āđŒāļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļ”āđ‰āļēāļ™āļĨāđˆāļēāļ‡āļ™āļĩāđ‰āļ„āļ·āļ­āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ—āļĩāđˆāļŠāļģāļ„āļąāļāđāļĨāļ°āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”āļ—āļĩāđˆāļ„āļ§āļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket:

  • āļ™āđ‚āļĒāļšāļēāļĒāļ—āļĩāđˆāļĄāļĩāļ•āđ‰āļ™āļāļģāđ€āļ™āļīāļ”āđ€āļ”āļĩāļĒāļ§āļāļąāļ™: āđƒāļŠāđ‰āļ™āđ‚āļĒāļšāļēāļĒāļ—āļĩāđˆāļĄāļĩāļ•āđ‰āļ™āļāļģāđ€āļ™āļīāļ”āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āđ€āļžāļ·āđˆāļ­āļˆāļģāļāļąāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ„āļ›āļĒāļąāļ‡āđ‚āļ”āđ€āļĄāļ™āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļāļąāļšāđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļ™āđ‚āļĒāļšāļēāļĒāļ™āļĩāđ‰āļŠāđˆāļ§āļĒāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩāļ”āđ‰āļ§āļĒāļāļēāļĢāļ›āļĨāļ­āļĄāđāļ›āļĨāļ‡āļ„āļģāļ‚āļ­āļ‚āđ‰āļēāļĄāđ„āļ‹āļ•āđŒ (CSRF)
  • āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ (WSS): āđƒāļŠāđ‰āļĢāļđāļ›āđāļšāļš URL 'wss' āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ›āļĨāļ­āļ”āļ āļąāļĒ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļ™āļĩāđ‰āļˆāļ°āđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāđˆāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ‚āļ”āļĒāđƒāļŠāđ‰ Transport Layer Security (TLS) āļ‹āļķāđˆāļ‡āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļ”āļąāļāļŸāļąāļ‡āļŦāļĢāļ·āļ­āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩāđāļšāļšāđāļ—āļĢāļāļāļĨāļēāļ‡
  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļīāļ™āļžāļļāļ•āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰: āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļīāļ™āļžāļļāļ•āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļšāļ™āļāļąāđˆāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļŠāļĄāļ­āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļĄāļĩāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļ”āļĩ āļ›āļĨāļ­āļ”āļ āļąāļĒ āđāļĨāļ°āđ€āļ›āđ‡āļ™āđ„āļ›āļ•āļēāļĄāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļ„āļēāļ”āļŦāļ§āļąāļ‡ āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ­āļīāļ™āļžāļļāļ•āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡ āđāļĨāļ°āđƒāļŠāđ‰āļāļēāļĢāļ†āđˆāļēāđ€āļŠāļ·āđ‰āļ­āļ­āļīāļ™āļžāļļāļ•āđ€āļžāļ·āđˆāļ­āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ āđ€āļŠāđˆāļ™ Cross-Site Scripting (XSS) āļŦāļĢāļ·āļ­āļāļēāļĢāđāļ—āļĢāļ SQL
  • āļˆāļąāļ”āļāļēāļĢāļāļąāļšāļāļēāļĢāļ‚āļēāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ—āļĩāđˆāđ„āļĄāđˆāļ„āļēāļ”āļ„āļīāļ”: āđƒāļŠāđ‰āļāļĨāđ„āļāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ€āļžāļ·āđˆāļ­āļāļđāđ‰āļ„āļ·āļ™āļˆāļēāļāļāļēāļĢāļ‚āļēāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ—āļĩāđˆāđ„āļĄāđˆāļ„āļēāļ”āļ„āļīāļ”āļŦāļĢāļ·āļ­āļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđ‚āļ›āļĢāļ”āļžāļīāļˆāļēāļĢāļ“āļēāđƒāļŠāđ‰āļāļĨāļĒāļļāļ—āļ˜āđŒāļāļēāļĢāļĨāļ­āļ‡āđƒāļŦāļĄāđˆāļ”āđ‰āļ§āļĒ Exponential Backoff āļŦāļĢāļ·āļ­āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļŠāļģāļĢāļ­āļ‡āđ€āļĄāļ·āđˆāļ­āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āđ€āļžāļ·āđˆāļ­āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļ‚āļ­āļ‡āļšāļĢāļīāļāļēāļĢ āļ—āļąāđ‰āļ‡āļ™āļĩāđ‰āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļšāļĢāļīāļšāļ—āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™
  • āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ°āļāļēāļĢāļ­āļ™āļļāļāļēāļ•: āđƒāļŠāđ‰āļāļĨāđ„āļāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļāļēāļĢāļ­āļ™āļļāļāļēāļ•āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāļ§āđˆāļēāđ€āļ‰āļžāļēāļ°āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĩāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ•āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĢāļ·āļ­āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđ„āļ”āđ‰ āļ‹āļķāđˆāļ‡āļ­āļēāļˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļšāļāļēāļĢāđƒāļŠāđ‰āđ‚āļ—āđ€āļ„āđ‡āļ™āđ€āļ‹āļŠāļŠāļąāļ™, āļ„āļĩāļĒāđŒ API āļŦāļĢāļ·āļ­āđ‚āļ—āđ€āļ„āđ‡āļ™ OAuth āđ€āļžāļ·āđˆāļ­āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢ WebSocket

WebSocket āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ‚āļĨāļāđāļŦāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļīāļ‡

āđāļĄāļ›āđ‚āļŸāļĨāļ§āđŒ WebSocket
āđāļ›āļĨāļ‡āđ€āļŸāļĢāļĄ, handshake āđāļĨāļ°āļāļŽāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđ€āļ›āđ‡āļ™āđ‚āļŸāļĨāļ§āđŒāđāļ­āļ›āļ—āļĩāđˆāđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āđ‚āļ”āļĒāđƒāļŠāđ‰āļ•āļąāļ§āđāļāđ‰āđ„āļ‚ Business Process
āļĨāļ­āļ‡āđ€āļĨāļĒ

WebSocket Protocol āļ–āļđāļāļ™āļģāļĄāļēāđƒāļŠāđ‰āļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđāļžāļĢāđˆāļŦāļĨāļēāļĒāđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđƒāļ™āđ‚āļĨāļāđāļŦāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļīāļ‡ āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āđāļĨāļ°āļĄāļĩāļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āļ•āđˆāļģ āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļąāđˆāļ§āđ„āļ›āđ„āļ”āđ‰āđāļāđˆ:

  • āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļŠāļ—: āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļŠāļ—āļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļœāļđāđ‰āđƒāļŠāđ‰ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨ WebSocket āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļŠāļĩāļĒāļ„āđˆāļēāđƒāļŠāđ‰āļˆāđˆāļēāļĒāđƒāļ™āļāļēāļĢāđ‚āļžāļĨāļ‹āđ‰āļģāļŦāļĢāļ·āļ­āļĢāļ­āļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļ„āļģāļ‚āļ­ HTTP āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ
  • āđ€āļāļĄāļ­āļ­āļ™āđ„āļĨāļ™āđŒ: āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ€āļāļĄāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ WebSocket āļĄāļ­āļšāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āļ•āđˆāļģ āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļāļēāļĢāđ€āļĨāđˆāļ™āđ€āļāļĄāļ”āđ‰āļ§āļĒāļāļēāļĢāđ‚āļ•āđ‰āļ•āļ­āļšāļ—āļĩāđˆāļĢāļēāļšāļĢāļ·āđˆāļ™āđāļĨāļ°āļ•āļ­āļšāļŠāļ™āļ­āļ‡
  • āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ: āļāļēāļĢāđƒāļŠāđ‰āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļŠāļ” āđ€āļŠāđˆāļ™ āļŸāļĩāļ”āđ‚āļ‹āđ€āļŠāļĩāļĒāļĨāļĄāļĩāđ€āļ”āļĩāļĒ āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āļ—āļēāļ‡āļ­āļĩāđ€āļĄāļĨ āļŦāļĢāļ·āļ­āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄāļ‡āļēāļ™ āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āļ”āđ‰āļ§āļĒ WebSocket āļ”āđ‰āļ§āļĒāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ—āļĩāđˆāļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ
  • āļāļēāļĢāļŠāļ•āļĢāļĩāļĄāļĢāļēāļĒāļāļēāļĢāļŠāļ”: āļāļēāļĢāļŠāļ•āļĢāļĩāļĄāļĢāļēāļĒāļāļēāļĢāļŠāļ” āđ€āļŠāđˆāļ™ āļāļēāļĢāļĢāļēāļĒāļ‡āļēāļ™āļ‚āđˆāļēāļ§āļāļĩāļŽāļē āļāļēāļĢāļŠāļ•āļĢāļĩāļĄāđ€āļŠāļĩāļĒāļ‡āđāļĨāļ°āļ§āļīāļ”āļĩāđ‚āļ­ āļŦāļĢāļ·āļ­āļŠāļīāļ—āļ˜āļīāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļ•āļĨāļēāļ”āļŦāļļāđ‰āļ™āļˆāļēāļāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§āđāļĨāļ°āđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰āļ‹āļķāđˆāļ‡āļ­āļģāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđ‚āļ”āļĒ WebSocket
  • āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļāļēāļĢāļ‹āļ·āđ‰āļ­āļ‚āļēāļĒāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™: āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļĢāļēāļ„āļēāļŦāļļāđ‰āļ™āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ•āļĨāļēāļ”āļ­āļ·āđˆāļ™ āđ† āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ WebSocket āđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āļ•āđˆāļģ āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđ„āļ›āļĒāļąāļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļąāđˆāļ§āđ‚āļĨāļāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§
  • āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļāļąāļšāļ­āļļāļ›āļāļĢāļ“āđŒ IoT: āļ­āļļāļ›āļāļĢāļ“āđŒ Internet of Things (IoT) āļĄāļąāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļāļąāļšāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ„āļ§āļšāļ„āļļāļĄ WebSocket āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™ āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ­āļļāļ›āļāļĢāļ“āđŒāļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļĢāđ‡āļ§āļ‚āļķāđ‰āļ™āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļĄāļēāļāļ‚āļķāđ‰āļ™

āđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ WebSocket āļŠāļģāļŦāļĢāļąāļšāđ€āļ§āđ‡āļš āļ­āļļāļ›āļāļĢāļ“āđŒāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ—āļĩāđˆ āđāļĨāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ AppMaster āļˆāļķāļ‡āđ€āļ›āđ‡āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāđ‚āļ„āđ‰āļ” āļ­āļąāļ™āļ—āļĢāļ‡āļžāļĨāļąāļ‡āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļĢāļ§āļĄ WebSocket AppMaster āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡ āļˆāļąāļ”āļāļēāļĢ āđāļĨāļ°āļ›āļĢāļąāļšāđāļ•āđˆāļ‡ WebSocket API āđ€āļžāļ·āđˆāļ­āļĨāļ”āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ āļ”āđ‰āļ§āļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ AppMaster āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āđ„āļ”āđ‰ āļ›āļĨāļ­āļ”āļ āļąāļĒ āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđ‚āļ”āļĒāđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļĻāļąāļāļĒāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”āļ‚āļ­āļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ WebSocket

āļāļēāļĢāđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļ AppMaster āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļē WebSocket

āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ”āđ‰āļ§āļĒāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ WebSocket āļ­āļēāļˆāđ€āļ›āđ‡āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđāļĨāļ°āđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™ āļ™āļĩāđˆāļ„āļ·āļ­āļˆāļļāļ”āļ—āļĩāđˆ AppMaster āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ no-code āļ­āļąāļ™āļ—āļĢāļ‡āļžāļĨāļąāļ‡ āļŠāļēāļĄāļēāļĢāļ–āļĄāļ­āļšāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļ—āļĩāđˆāļŠāļģāļ„āļąāļāđƒāļŦāđ‰āļāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāđāļĨāļ°āļ˜āļļāļĢāļāļīāļˆāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket

AppMaster āđ„āļ”āđ‰āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ€āļāļĄāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļēāđāļ­āļžāđ‚āļ”āļĒāļĄāļ­āļšāđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ—āļĩāđˆāļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āđāļĨāļ°āļ„āļĨāđˆāļ­āļ‡āļ•āļąāļ§āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ āđ€āļ§āđ‡āļš āđāļĨāļ° āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĄāļ·āļ­āļ–āļ·āļ­ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ­āļ­āļāđāļšāļšāđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒāļ”āđ‰āļ§āļĒāļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™ WebSocket āđ‚āļ”āļĒāđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āļĄāļąāļ™

āļāļēāļĢāļ­āļ­āļāđāļšāļšāļ āļēāļžāđāļĨāļ°āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļĨāļ­āļˆāļīāļāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ

āļ‚āđ‰āļ­āļ”āļĩāļŦāļĨāļąāļāļ›āļĢāļ°āļāļēāļĢāļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰ AppMaster āļ„āļ·āļ­āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļšāļšāļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰ āđ‚āļ”āļĒāđƒāļŠāđ‰āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹ drag-and-drop āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļš UI āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ‚āļ­āļ‡āļ„āļļāļ“ āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āļĒāļąāļ‡āļĄāļĩāļ•āļąāļ§āļ­āļ­āļāđāļšāļšāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ (BP) āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ•āļĢāļĢāļāļ°āļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļ‚āļ­āļ‡āļ—āļļāļāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļš āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš WebSockets āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™ āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđ€āļŠāļīāļ‡āđ‚āļ•āđ‰āļ•āļ­āļšāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

āļ‹āļ­āļĢāđŒāļŠāđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āđāļĨāļ°āļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

AppMaster āļŠāļĢāđ‰āļēāļ‡āļ‹āļ­āļĢāđŒāļŠāđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ‚āļ­āļ‡āļ„āļļāļ“āđƒāļ™āļ āļēāļĐāļēāļĒāļ­āļ”āļ™āļīāļĒāļĄ āđ€āļŠāđˆāļ™ Go āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ, Vue3 āļžāļĢāđ‰āļ­āļĄ JS/TS āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļšāļ™āđ€āļ§āđ‡āļš āđāļĨāļ° Kotlin āđāļĨāļ° SwiftUI āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĄāļ·āļ­āļ–āļ·āļ­āļšāļ™ Android āđāļĨāļ° iOS āļ•āļēāļĄāļĨāļģāļ”āļąāļš āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āļĢāļ§āļšāļĢāļ§āļĄāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļĢāļąāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļš āļˆāļąāļ”āļ—āļģāđāļžāđ‡āļāđ€āļāļˆāđ‚āļ›āļĢāđ€āļˆāđ‡āļāļ•āđŒāļĨāļ‡āđƒāļ™ āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒ Docker (āļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ) āđāļĨāļ°āļ›āļĢāļąāļšāđƒāļŠāđ‰āļšāļ™āļ„āļĨāļēāļ§āļ”āđŒ āļŦāļēāļāļ„āļļāļ“āļĄāļĩāļāļēāļĢāļŠāļĄāļąāļ„āļĢāļŠāļĄāļēāļŠāļīāļ Enterprise āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļĢāļąāļšāļ‹āļ­āļĢāđŒāļŠāđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āđ€āļžāļ·āđˆāļ­āđ‚āļŪāļŠāļ•āđŒāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ‚āļ­āļ‡āļ„āļļāļ“āļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ āļ—āļģāđƒāļŦāđ‰āļ„āļļāļ“āļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļļāļ“āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ•āđ‡āļĄāļ—āļĩāđˆ

āļšāļđāļĢāļ“āļēāļāļēāļĢāļāļąāļšāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ WebSocket

AppMaster āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļĢāļ§āļĄāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ WebSocket āđ€āļ‚āđ‰āļēāļāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ‚āļ­āļ‡āļ„āļļāļ“āđ„āļ”āđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡ AppMaster āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļĄāļļāđˆāļ‡āđ€āļ™āđ‰āļ™āđ„āļ›āļ—āļĩāđˆāļāļēāļĢāļ­āļ­āļāđāļšāļšāđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļģāļŦāļĢāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđ‚āļ”āļĒāļāļēāļĢāļ”āļđāđāļĨāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļžāļ·āđ‰āļ™āļāļēāļ™āđāļĨāļ°āļˆāļąāļ”āļŦāļēāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāļ āļēāļž āļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āļ‚āļ­āļ‡āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ—āļģāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡ WebSocket API āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđāļĨāļ°āļ­āļ­āļāđāļšāļšāđ‚āļĄāđ€āļ”āļĨāļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļ•āļĢāļĢāļāļ°āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āđ€āļžāļ·āđˆāļ­āļ—āļģāļ‡āļēāļ™āļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨ WebSocket āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ

āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļŠāļģāļŦāļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļĩāđˆāļĄāļĩāđ‚āļŦāļĨāļ”āļŠāļđāļ‡

āļ”āđ‰āļ§āļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ­āļąāļ™āļ™āđˆāļēāļ›āļĢāļ°āļ—āļąāļšāđƒāļˆāļ‚āļ­āļ‡ AppMaster āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļˆāļķāļ‡āđ€āļŦāļĄāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļĢāļ°āļ”āļąāļšāļ­āļ‡āļ„āđŒāļāļĢāļ—āļĩāđˆāļĄāļĩāļ āļēāļĢāļ°āļ‡āļēāļ™āļŠāļđāļ‡ āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš Postgresql āđ€āļ›āđ‡āļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ āđāļĨāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāđāļšāļšāđ„āļĢāđ‰āļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆāļ„āļ­āļĄāđ„āļžāļĨāđŒāđāļĨāđ‰āļ§āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ”āļĩāļŠāļģāļŦāļĢāļąāļšāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāļ—āļĩāđˆāļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āđ„āļ”āđ‰ āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰ AppMaster āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļē WebSocket āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļĄāļąāđˆāļ™āđƒāļˆāđ„āļ”āđ‰āļ§āđˆāļēāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ‚āļ­āļ‡āļ„āļļāļ“āļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āļ­āļ‡āļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒāļ—āļĩāđˆāļĄāļĩāđ‚āļŦāļĨāļ”āļŠāļđāļ‡ āđ‚āļ”āļĒāđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket āļ—āļĩāđˆāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āđ„āļ”āđ‰āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

AppMaster āđ€āļ›āđ‡āļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ­āļąāļ™āļĨāđ‰āļģāļ„āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļšāļ™ WebSocket āļāļēāļĢāļ­āļ­āļāđāļšāļšāļ āļēāļž āļ‹āļ­āļĢāđŒāļŠāđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™ āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄ WebSocket āļ—āļĩāđˆāļĢāļēāļšāļĢāļ·āđˆāļ™ āđāļĨāļ°āļāļēāļĢāļĢāļ­āļ‡āļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļĩāđˆāļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āđ„āļ”āđ‰āđāļĨāļ°āļĄāļĩāļ āļēāļĢāļ°āļ‡āļēāļ™āļŠāļđāļ‡ āļ—āļģāđƒāļŦāđ‰āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ™āļĩāđ‰āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ­āļąāļ™āļ”āļąāļšāļ•āđ‰āļ™āđ† āļŠāļģāļŦāļĢāļąāļšāļ˜āļļāļĢāļāļīāļˆāđāļĨāļ°āļ™āļąāļāļžāļąāļ’āļ™āļē āļ­āļĒāđˆāļēāļ›āļĨāđˆāļ­āļĒāđƒāļŦāđ‰āļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡āļāļēāļĢāļžāļąāļ’āļ™āļē WebSocket āđ€āļ›āđ‡āļ™āļ­āļļāļ›āļŠāļĢāļĢāļ„āļ•āđˆāļ­āļ„āļļāļ“ āļŠāļąāļĄāļœāļąāļŠāļžāļĨāļąāļ‡āļ‚āļ­āļ‡ AppMaster āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ™āļ§āļąāļ•āļāļĢāļĢāļĄāđƒāļŦāļĄāđˆāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ

āļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒ

WebSocket Protocol āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

WebSocket Protocol āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļœāđˆāļēāļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļ”āļĩāļĒāļ§āļ—āļĩāđˆāļĄāļĩāļ­āļēāļĒāļļāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļĒāļēāļ§āļ™āļēāļ™

WebSocket Protocol āđāļ•āļāļ•āđˆāļēāļ‡āļˆāļēāļ HTTP āđāļšāļšāđ€āļ”āļīāļĄāļ­āļĒāđˆāļēāļ‡āđ„āļĢ

WebSocket Protocol āđƒāļŦāđ‰āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļŠāļ­āļ‡āļ—āļīāļĻāļ—āļēāļ‡āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđāļĨāļ°āļĨāļ”āđ€āļ§āļĨāļēāđāļāļ‡āđ‚āļ”āļĒāļāļēāļĢāļĢāļąāļāļĐāļēāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļšāļšāđ€āļ›āļīāļ”āđ€āļžāļĩāļĒāļ‡āļˆāļļāļ”āđ€āļ”āļĩāļĒāļ§ āđƒāļ™āļ—āļēāļ‡āļ•āļĢāļ‡āļāļąāļ™āļ‚āđ‰āļēāļĄ HTTP āļ­āļēāļĻāļąāļĒāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ—āļĩāđˆāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ•āđˆāļ­āļ„āļģāļ‚āļ­āļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢāļ‹āļķāđˆāļ‡āļŠāļĢāđ‰āļēāļ‡āđ‚āļ­āđ€āļ§āļ­āļĢāđŒāđ€āļŪāļ”āđāļĨāļ°āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡

āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­ WebSocket āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

āļāļēāļĢāļˆāļąāļšāļĄāļ·āļ­ WebSocket āđ€āļ›āđ‡āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļ„āļģāļ‚āļ­ HTTP āđāļĨāļ°āļ­āļąāļ›āđ€āļāļĢāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket

āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket āđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ

āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢ WebSocket āļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđ€āļ›āđ‡āļ™āđ€āļŸāļĢāļĄ WebSocket āļ‹āļķāđˆāļ‡āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨ āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļˆāļ°āļāļģāļŦāļ™āļ”āļ›āļĢāļ°āđ€āļ āļ—āļ•āđˆāļēāļ‡āđ† āļ‚āļ­āļ‡āļāļĢāļ­āļšāļ„āļ§āļšāļ„āļļāļĄāđāļĨāļ°āļāļĢāļ­āļšāļ‚āđ‰āļ­āļĄāļđāļĨ āļĢāļ§āļĄāļ–āļķāļ‡āļāļĢāļ­āļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄ āđ„āļšāļ™āļēāļĢāļĩ āđāļĨāļ°āļāļĢāļ­āļšāļ„āļ§āļšāļ„āļļāļĄ

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒ WebSocket āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāļĒāđˆāļ­āļĒ WebSocket āđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ€āļ‰āļžāļēāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāđ€āļĨāđ€āļĒāļ­āļĢāđŒāļšāļ™ WebSocket Protocol āļžāļ·āđ‰āļ™āļāļēāļ™ āđ‚āļ”āļĒāļˆāļ°āļāļģāļŦāļ™āļ”āļāļŽāđāļĨāļ°āđāļšāļšāđāļœāļ™āļŠāļģāļŦāļĢāļąāļšāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđāļĨāļ°āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡āļ āļēāļĒāđƒāļ™āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļ‰āļžāļēāļ°

WebSocket API āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

WebSocket API āļ„āļ·āļ­āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ JavaScript āļšāļ™āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāļ‚āļ­āļ‡ WebSocket Protocol āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāđƒāļŠāđ‰āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āđ€āļžāļ·āđˆāļ­āđāļĨāļāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļāļąāļšāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ WebSocket

āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđƒāļŠāđ‰ WebSocket Protocol āļĄāļĩāļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡

āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡ WebSocket āđ„āļ”āđ‰āđāļāđˆ āļ™āđ‚āļĒāļšāļēāļĒāļ•āđ‰āļ™āļāļģāđ€āļ™āļīāļ”āđ€āļ”āļĩāļĒāļ§āļāļąāļ™ āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ WebSocket āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ (WSS) āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļīāļ™āļžāļļāļ•āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰ āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļąāļšāļāļēāļĢāļ•āļąāļ”āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ—āļĩāđˆāđ„āļĄāđˆāļ„āļēāļ”āļ„āļīāļ” āđāļĨāļ°āđƒāļŠāđ‰āļāļĨāđ„āļāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ°āļāļēāļĢāļ­āļ™āļļāļāļēāļ•āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ

āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡āļ‚āļ­āļ‡ WebSocket Protocol āļĄāļĩāļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡

WebSocket Protocol āđƒāļŠāđ‰āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ•āđˆāļēāļ‡āđ† āđ€āļŠāđˆāļ™ āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļŠāļ— āđ€āļāļĄāļ­āļ­āļ™āđ„āļĨāļ™āđŒ āļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ āļāļēāļĢāļŠāļ•āļĢāļĩāļĄāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļŠāļ” āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļāļēāļĢāļ‹āļ·āđ‰āļ­āļ‚āļēāļĒāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™ āđāļĨāļ°āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ‚āļ­āļ‡āļ­āļļāļ›āļāļĢāļ“āđŒ IoT

AppMaster āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ§āļĒāđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē WebSocket āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ

AppMaster āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ no-code āļ­āļąāļ™āļ—āļĢāļ‡āļžāļĨāļąāļ‡ āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄ WebSocket āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļˆāļąāļ”āļāļēāļĢ WebSocket API āļŦāļĢāļ·āļ­ WebSockets āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ‚āļ­āļ‡āļ•āļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ

āļ‰āļąāļ™āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰ WebSocket āļāļąāļš AppMaster āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđ„āļ”āđ‰āļŦāļĢāļ·āļ­āđ„āļĄāđˆ

āđƒāļŠāđˆ AppMaster āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļĢāļ§āļĄ WebSocket āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ”āđ‰āļ§āļĒāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ WebSocket āļĢāļ§āļĄāļ–āļķāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ āđ€āļ§āđ‡āļš āđāļĨāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĄāļ·āļ­āļ–āļ·āļ­

āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™
āļŠāļĢāđ‰āļēāļ‡āļšāļēāļ‡āļŠāļīāđˆāļ‡āļ—āļĩāđˆ āļ™āđˆāļēāļ—āļķāđˆāļ‡

āļ—āļ”āļĨāļ­āļ‡āļāļąāļš AppMaster āļ”āđ‰āļ§āļĒāđāļœāļ™āļŸāļĢāļĩ
āđ€āļĄāļ·āđˆāļ­āļ„āļļāļ“āļžāļĢāđ‰āļ­āļĄ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļāļēāļĢāļŠāļĄāļąāļ„āļĢāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđ„āļ”āđ‰

āđ€āļĢāļīāđˆāļĄ
WebSocket Protocol: āđ€āļˆāļēāļ°āļĨāļķāļāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļģāļ‡āļēāļ™ | AppMaster