{"author_url":"https://blog.hatena.ne.jp/ledsun/","blog_title":"@ledsun blog","provider_name":"Hatena Blog","title":"Ruby\u3067\u3064\u304f\u308bWebSocket\u30b5\u30fc\u30d0\u30fc\u306bprotocol-websocket gem\u3092\u53d6\u308a\u5165\u308c\u308b \u305d\u306e1","published":"2024-12-04 23:05:59","categories":["Ruby","WebSocket"],"blog_url":"https://ledsun.hatenablog.com/","width":"100%","image_url":null,"type":"rich","author_name":"ledsun","provider_url":"https://hatena.blog","height":"190","version":"1.0","description":"Async::WebSocket gem\u306e\u7d20\u632f\u308a \u305d\u306e8 - @ledsun blog\u306b\u3066Ruby\u3067\u3064\u304f\u308bWebSocket\u30b5\u30fc\u30d0\u30fc\u306bprotocol-websocket gem\u3092\u53d6\u308a\u5165\u308c\u308b\u3068\u826f\u3055\u305d\u3046\u306a\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f\u3002 \u3084\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002 require 'socket' require 'protocol/websocket/headers' server = TCPServer.new 'localhost', 2345 loop do # \u3053\u3053\u3089\u8fba\u306fecho_server.rb\u3068\u540c\u3058\u3002\u7d14\u7c8b\u306aTCP\u901a\u4fe1 socket = server.accept # HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u8aad\u307f\u8fbc\u3080 h\u2026","url":"https://ledsun.hatenablog.com/entry/2024/12/04/230559","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fledsun.hatenablog.com%2Fentry%2F2024%2F12%2F04%2F230559\" title=\"Ruby\u3067\u3064\u304f\u308bWebSocket\u30b5\u30fc\u30d0\u30fc\u306bprotocol-websocket gem\u3092\u53d6\u308a\u5165\u308c\u308b \u305d\u306e1 - @ledsun blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>"}