Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 钢轨-腹板箱_Ruby On Rails_Websocket_Redis - Fatal编程技术网

Ruby on rails 钢轨-腹板箱

Ruby on rails 钢轨-腹板箱,ruby-on-rails,websocket,redis,Ruby On Rails,Websocket,Redis,我想使用WebSocket将数据推送到客户端。我现在不知道如何将数据(从Redis)返回到客户端。谁能给我解释一下吗 sockets\u controller.rb class SocketsController < WebsocketRails::BaseController def create send_message :new_event, {:message => 'TEST'} end end websocket_rails.rb WebsocketRa

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

sockets\u controller.rb

class SocketsController < WebsocketRails::BaseController
  def create
    send_message :new_event, {:message => 'TEST'}
  end
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.

似乎您正在尝试对web套接字使用
Socket.IO
。Rails不支持
Socket.IO
的实现

如果您想了解如何从Angular.JS与websocket rails交互的示例,可以使用以下指南:


请提供您的源代码。也添加您的客户端代码。完成后,您可以立即查看是否确定这不可能?好的,您可以设置其他Node.js服务器,如下所示:现在我获得404(未找到)
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.