2013-05-24 10 views
7

CF10 Websocketを使用して1つのチャットでLive oneを実装するサンプルまたはページを知っている人はいますか? ネットで見つかったすべての例は、ユーザーが特定のチャンネルを購読しているグループチャットの例でした。私は、あなたがサポートエージェントの1人とチャットすることを可能にするウェブサイト上で非常に頻繁に見るライブヘルプチャットの仕方のように、1つのチャットに1つのインスタンスが多数存在するようにする必要があります。どんな助けもありがたいです。うまくいけば、例があります(CFとJS)。Coldfusion 10 - Websocketとの1対1のチャット

+0

誰でもご存知ですか?私の最初の考えは、チャットチャンネルを1つ作成することでした。クライアントが開始したすべてのチャットについて、chat.chat1などのチャットのサブチャンネルで作成しました。エージェント側はそのチャネルに接続して、1対1のチャットのようになりますが、それが正しい方法であるかどうかはわかりません。他の人たちはどうしていますか? – Guest

+0

ええ、私はまずコンセプトコードのいくつかを一緒にノックするために時間を見つける必要があります。約24時間来て、私はあなたに戻ってきます。 –

+0

素晴らしい!ありがとう!これについての良い例を見つけるのは本当に難しいです。 – Guest

答えて

2

Ben Nadelには、pushing a message to a target userのCF10のウェブソケットの使用についての素敵な記事があります。彼は素敵なデモビデオを加えました。これは、あなたが探しているものかもしれません。

+0

ありがとうJan!本当に面白そうに見え、それを読み上げます。ユーザーがエージェントに接続しているランダムな人物であるLive Help Chatシナリオでうまくいくことを願ってください。 – Guest

1

現在、私のために働いているサンプルコードです。

属性10を使用する代わりに、js関数を使用してユーザーをサブスクライブし、いくつかのヘッダー値を渡します。

<cfwebsocket name="ChatSocket" onOpen="openHandler" onMessage="msgHandler" onError="errHandler"> 

<script> 
    function openHandler(){ 
     //Subscribe to the channel, pass in headers for filtering later 
     ChatSocket.subscribe('chatChannel',{name: '#Session.Auth.FirstName#', UserID: '#Session.Auth.UserID#', AccountID: '#Session.Auth.AccountID#' }); 
    } 

    function publish(txt, userID){ 
     var msg = { 
      AccountID: "#Session.Auth.AccountID#", 
      publisher: '#Session.Auth.UserID#', 
      id: userID, 
      message: converthtml(txt) 
     }; 
     //When including headers, the "selector" is where you will filter who it goes to. 
     var headers = { 
      AccountID: "#Session.Auth.AccountID#", 
      publisher: '#Session.Auth.UserID#', 
      id: userID, 
      selector: "UserID eq '"+userID+"' and AccountID eq '#Session.Auth.AccountID#'" 
     }; 
     ChatSocket.publish('chatChannel',msg, headers); 

    } 

    function msgHandler(message){ 
     console.log(message); 
    } 

    function errHandler(err){ 
     console.log(err); 
    } 
</script> 
1

最初は、私は似たような実装を考えていたが、CF10で、いくつかの基本的な制限が今では私を迂回するようあります。これらのヘッダは、その後selector

例を使用してパブリッシュ呼び出しでフィルタとして使用することができますさらに調査することから。

  1. WSSのサポートを参照して、欠落しています。Does CF10 support secure websocket wss?
  2. のWebSocketは、クラスタ環境では動作しません、以下を参照してくださいhttps://groups.google.com/forum/#!topic/houcfug/M7YQQyrBTaQ

私は深刻な一対一のライブチャットのために別の場所になりますおそらくSocket.IO on NodeJSまたはJava

WS11がCF11に入っている可能性があります。よく分かりません。

関連する問題