尝试使用Ruby的WebSocket客户端连接到Action Cable


用Rails 5动作电缆制作!简单的聊天应用程序(来自DHH先生的演示视频)-我想连接到可以使用WebSocket客户端使用Qiita完成的聊天服务器,因此我暂时使用Ruby进行了尝试。
我没有很好地理解内容,但是暂时会做笔记。

参考站点

使用Action Cable作为websocket API与Uni??ty --Qiita通信
ruby on rails-从iOS应用程序连接到ActionCable --Stack Overflow

暂时制造

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require 'websocket-client-simple'
require 'json'

ws = WebSocket::Client::Simple.connect 'ws://localhost:3000/cable'

ws.on :message do |msg|
  puts msg.data
end

ws.on :open do
  id = { channel: 'RoomChannel' }
  # channel参加(on :messageでメッセージを受け取れるように)
  ws.send({ command: 'subscribe', identifier: {channel:'RoomChannel'}.to_json}.to_json)
  # channel参加完了前にメッセージを送るとエラーとなるのでとりあえず
  sleep 1
  # メッセージ送信              
  ws.send({ command: 'message', data: {message: 'hogemogeaa2', action: 'speak'}.to_json, identifier: {channel:'RoomChannel'}.to_json}.to_json)
end

ws.on :close do |e|
  exit 1
end

loop do
  ws.send STDIN.gets.strip
end