Skip to content
Extraits de code Groupes Projets
sockets_controller.rb 1,12 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    #   Copyright (c) 2010, 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
    
    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)
    
    maxwell's avatar
    maxwell a validé
        @_request = ActionDispatch::Request.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
    
      def all_aspects
        @all_aspects ||= user.aspects
    
    maxwell's avatar
    maxwell a validé
      end
    end