Skip to content
Extraits de code Groupes Projets
sockets_controller.rb 1,36 ko
Newer Older
  • Learn to ignore specific revisions
  • danielgrippi's avatar
    danielgrippi a validé
    #   Copyright (c) 2010-2011, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    #   licensed under the Affero General Public License version 3 or later.  See
    
    Raphael's avatar
    Raphael a validé
    #   the COPYRIGHT file.
    
    class SocketsController < ApplicationController
    
      include ApplicationHelper
    
      include Rails.application.routes.url_helpers
    
      helper_method :current_user
    
    
    maxwell's avatar
    maxwell a validé
      def incoming(msg)
    
    ilya's avatar
    ilya a validé
        Rails.logger.info("Socket received connection to: #{msg}")
    
    maxwell's avatar
    maxwell a validé
      end
    
      def outgoing(user_or_id, object, opts={})
    
        #this should be the actual params of the controller
        @params = {:user_or_id => user_or_id, :object => object}.merge(opts)
    
        return unless Diaspora::WebSocket.is_connected?(user_id)
    
        @_request = SocketRequest.new({})
    
        Diaspora::WebSocket.queue_to_user(user_id, action_hash(user, object, opts))
      end
    
      def user_id
        if @params[:user_or_id].instance_of?(Fixnum)
          @user_id ||= @params[:user_or_id]
        else
          @user_id ||= @params[:user_or_id].id
        end
      end
    
      def user
       @user ||= ((@params[:user_or_id].instance_of? User )? @params[:user_or_id] : User.find(user_id))
      end
    
    
    danielgrippi's avatar
    danielgrippi a validé
      def current_user
        user
      end
    
    
      def url_options
        {:host => "#{AppConfig[:pod_uri].host}:#{AppConfig[:pod_uri].port}"}
      end
    
    
    maxwell's avatar
    maxwell a validé
      end
    
    
      class SocketRequest < ActionDispatch::Request
        def format
          'socket'
        end
      end
    
    maxwell's avatar
    maxwell a validé
    end