В последнее время я экспериментировал с ruby и паутиной. Поэтому я создал новый проект Rails 5 с ActionCable, с ним все вроде бы нормально работает.
Но также я создал ruby обычный скрипт с клиентом Faye ruby websocket . В отличие от большинства учебных пособий по inte rnet, я хочу попробовать скрипт на стороне сервера (в качестве клиента), а не скрипт внешнего интерфейса JS внутри файла HTML.
Итак, я попробовал основы c использовать его, и я успешно заставляю рукопожатие работать правильно, но я не могу продолжить тестирование, потому что я не могу понять, где подписаться после подключения к желаемому каналу, выставленному на сервере Rails.
Вот мой ruby код сценария:
require 'faye/websocket'
require 'eventmachine'
EM.run {
ws = Faye::WebSocket::Client.new('ws://localhost:3001/cable',nil,{
headers: {'Origin' => 'ws://localhost:3001/cable'}
})
ws.on :open do |event|
p [:open]
ws.send({data: 'hello'})
end
ws.on :message do |event|
p [:message, event.data]
end
ws.on :close do |event|
p [:close, event.code, event.reason]
ws = nil
end
ws.on :error do |event|
p [:close, event.code, event.reason]
ws = nil
end
ws.send({data: 'yoyoyooy'}) # This gets sent to nowhere..
# I was hoping into subscribing a channel and callbacks for that channel, something like:
# ws.subscribe('my-channel',receive_message_callback,error_callback)
}
На стороне actioncable мой класс подключений вызывает метод connect
, но я все еще не уверен, как взаимодействовать с каналом. Как подписка от клиента, чтобы я мог начать отправлять и получать сообщения.