# Copyright (c) 2010-2011, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. class SocketsController < ApplicationController include ApplicationHelper include SocketsHelper include Rails.application.routes.url_helpers helper_method :all_aspects helper_method :current_user def incoming(msg) Rails.logger.info("Socket received connection to: #{msg}") 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 def current_user user end def url_options {:host => "#{AppConfig[:pod_uri].host}:#{AppConfig[:pod_uri].port}"} end def all_aspects @all_aspects ||= user.aspects end class SocketRequest < ActionDispatch::Request def format 'socket' end end end