@ledsun blog

無味の味は佳境に入らざればすなわち知れず

Ruby in the browserでWebSocketリクエスト送信

RubyでWebSocketサーバー - @ledsun blogで作ったWebSocketサーバーにRuby in the browserからリクエストを送信してみましょう。

<html>
<head>
  <title>WebSocket Client</title>
  <script src="https://cdn.jsdelivr.net/npm/@ruby/[email protected]/dist/browser.script.iife.js"></script>
</head>
<body>
  <script type="text/ruby">
    require "js"

    ws = JS.global[:WebSocket].new("ws://localhost:2345")
    ws[:onopen] = -> (event) {
      ws.send("Hello, Server")
    }
    ws[:onmessage] = ->(event) {
      p event[:data]
    }
  </script>
</body>
</html>

このコードはほとんど ruby.wasmからのWebSocket - @ledsun blog の時のままです。

  class JS::Object
    undef_method :send
  end

が無くなった点が違います。 JS::Object inherits BasicObject by ledsun · Pull Request #541 · ruby/ruby.wasm · GitHubがマージされて、JS::Objectの親クラスがBasicObjectになったのです! やったぜ!