大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 用于websocket-rails gem的Ruby websocket客户端,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在客户端,我尝试使用不同的ruby宝石,如faye-websocket-ruby和websocket-client-simple,但是当我尝试发送消息时总是会出错.在服务器上,我找不到处理这些消息的方法.两个gems都有一个Send方法,只接受一个字符串(不能指定事件的名称)
我一直在使用的代码如下:
服务器端
应用程序/控制器/ chat_controller.rb
class ChatController < WebsockeTrails::BaseController def new_message puts ')'*40 end def client_connected puts '-'*40 end def client_disconnected puts '&'*40 end end
配置/ events.rb
WebsockeTrails::EventMap.describe do subscribe :client_connected,:to => ChatController,:with_method => :client_connected subscribe :message,:with_method => :new_message subscribe :client_disconnected,:with_method => :client_disconnected end
配置/初始化/ websocket_rails.rb
WebsockeTrails.setup do |config| config.log_path = "#{Rails.root}/log/websocket_rails.log" config.log_internal_events = true config.synchronize = false end
客户端
WebSocket的客户端,简单
require 'rubygems' require 'websocket-client-simple' ws = WebSocket::Client::Simple.connect 'ws://localhost:3000/websocket' ws.on :message do |msg| puts msg.data end ws.on :new_message do hash = { chAnnel: 'example' } ws.send hash end ws.on :close do |e| p e exit 1 end ws.on :error do |e| p e end hash = { chAnnel: 'Example',message: 'Example' } ws.send 'new_message',hash loop do ws.send STDIN.gets.Strip end
王菲-的WebSocket
require 'faye/websocket' require 'eventmachine' Em.run { ws = Faye::WebSocket::Client.new('ws://localhost:3000/websocket') ws.on :open do |event| p [:open] 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.send( 'Example Text' ) }
提前致谢.问候.
PD:如果您需要更多代码,请告诉我.
以上是大佬教程为你收集整理的ruby-on-rails – 用于websocket-rails gem的Ruby websocket客户端全部内容,希望文章能够帮你解决ruby-on-rails – 用于websocket-rails gem的Ruby websocket客户端所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。