ruby-on-rails - rails - WebSocket

标签 ruby-on-rails websocket redis

我想使用 WebSocket 将数据推送到客户端。我现在不知道如何将数据(从 Redis)返回给客户端。有人可以给我解释一下吗?

套接字 Controller .rb

class SocketsController < WebsocketRails::BaseController
  def create
    send_message :new_event, {:message => 'TEST'}
  end
end

事件.rb

WebsocketRails::EventMap.describe do
  subscribe :new_event, 'sockets#create'
end

websocket_rails.rb

WebsocketRails.setup do |config|
  config.redis_options = { driver: :ruby }
  config.standalone = false
  config.synchronize = true
end

客户端:

$socket.on('test', function(data) {
console.log(data);
    $scope.events.upshift(data);
if($scope.events.length>50){
$scope.events.length=50;
EventsList =$scope.events;
}
});

routerApp.config(["$socketProvider", function ($socketProvider) {
  $socketProvider.setUrl("http://172.16.20.179:3000/events");
}]);

在客户端问题看起来像:

GET http://172.16.20.179:3000/socket.io/?
EIO=3&transport=polling&t=1439215071732-9

XMLHttpRequest cannot load http://172.16.20.179:3000/socket.io/?
EIO=3&transport=polling&t=1439215056291-6. No 'Access-Control-Allow-
Origin' header is present on the requested resource. Origin 
'http://localhost:4000' is therefore not allowed access. The response 
had HTTP status code 404.

最佳答案

您似乎正尝试将 Socket.IO 用于网络套接字。不支持 Rails 的 Socket.IO 实现。

如果你想要一个关于如何从 Angular.JS 与 websocket-rails 交互的例子,你可以使用,例如,下面的指南:

https://medium.com/@karimbutt/integrating-websocket-rails-with-angularjs-or-other-js-frameworks-256729e95a86

关于ruby-on-rails - rails - WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31920394/

相关文章:

c# - 使用 ibm-watson 服务 C# 的语音转文本

javascript - Google App Engine Python -> 配置 yaml 和 websockets

Redis命令行语法

json - 无法从 spark 作业写入 redis

css - 将 bootstrap-theme 集成到 Ruby on Rails 元素中

ruby-on-rails - 如何在 rails (4.1.5) 中创建装置(对于设计用户)作为 yml.erb?

ruby-on-rails - Ruby 1.9.2 如何在 Windows 上安装 RMagick?

ruby-on-rails - Ruby on Rails : 4. 2.0 rails 和 bin/rails 的区别

python-3.x - Bittrex 网络套接字 API : how to get the order history?

spring-boot - Spring Redis 缓存中的 ClassCastException