【问题标题】:Rails - WebSocketRails - WebSocket
【发布时间】:2015-11-02 10:00:17
【问题描述】:

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

sockets_controller.rb

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

events.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.

【问题讨论】:

  • 请提供您的源代码。
  • 也添加您的客户端代码。
  • 完成了,你可以看看

标签: ruby-on-rails websocket redis


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多