web-k / tiramisu

WebSocket(Pusher)を使ったチャット&囲碁Railsアプリ
https://trms.herokuapp.com
1 stars 2 forks source link

アイコンとユーザー名の関連づけ #136

Open toshi3221 opened 10 years ago

toshi3221 commented 10 years ago

どの映像が誰かを対応付ける

toshi3221 commented 10 years ago

title属性にユーザー名を付加した。表示するにはスタイル調整する必要あり

toshi3221 commented 10 years ago

trms-devに音声チャット、フルスクリーン、画像と名前の関連付けまでデプロイした

toshi3221 commented 10 years ago

presenceチャンネルの接続ユーザー情報にuser_infoとあって、webrtc接続更新時にuser_infoをwebrtc接続後に再度pusher側のユーザーをログインし直して更新してユーザー名との関連付けを実現しようとしているが、Pusherのuser_infoが、最初にクライアントから登録されたuser_infoを使い続けるような状態になっている。

class PusherController < ApplicationController
  protect_from_forgery :except => :auth

  def auth
    if session[:user_name].present?
      session[:user_id] = request.session_options[:id]
      response = Pusher[params[:channel_name]].authenticate(params[:socket_id], {
        :user_id => request.session_options[:id],
        :user_info => {
          :name => session[:user_name],
          :webrtc_id => session[:webrtc_id]
        }
      })
      render :json => response
    else
      render :text => "Forbidden", :status => '403'
    end
  end
end
toshi3221 commented 10 years ago

Pusher presenceは残念ながら情報更新に弱かったので常にwebrtc IDとuser IDを関連づけるクライアントイベントをポーリングするようにした。

        setInterval(function () {
           channel.trigger('client-webrtc_info', {
             user_id: channel.members.me.id,
             webrtc_id: rtc._me,
           });
         }, 2000);