CF10 Websocketを使用して1つのチャットでLive oneを実装するサンプルまたはページを知っている人はいますか? ネットで見つかったすべての例は、ユーザーが特定のチャンネルを購読しているグループチャットの例でした。私は、あなたがサポートエージェントの1人とチャットすることを可能にするウェブサイト上で非常に頻繁に見るライブヘルプチャットの仕方のように、1つのチャットに1つのインスタンスが多数存在するようにする必要があります。どんな助けもありがたいです。うまくいけば、例があります(CFとJS)。Coldfusion 10 - Websocketとの1対1のチャット
7
A
答えて
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
例を使用してパブリッシュ呼び出しでフィルタとして使用することができますさらに調査することから。
- WSSのサポートを参照して、欠落しています。Does CF10 support secure websocket wss?
- のWebSocketは、クラスタ環境では動作しません、以下を参照してくださいhttps://groups.google.com/forum/#!topic/houcfug/M7YQQyrBTaQは
私は深刻な一対一のライブチャットのために別の場所になりますおそらくSocket.IO on NodeJSまたはJava
WS11がCF11に入っている可能性があります。よく分かりません。
関連する問題
- 1. ゴラン1対1のチャット
- 2. Firebase&JSQMessagesViewController Ios Swift 2で1対1のチャット
- 3. Sendbird IOSで1対1のチャットを作成
- 4. Firebaseを使用した1対1のAndroidチャット
- 5. Javaサーバープッシャーチャット:JavaサーバーとAndroidサーバーのプッシャーの1対1のチャットのためのアーキテクチャー
- 6. 1対1と1対多の関係
- 7. コードネーム1のWebsocket
- 8. 1対1の構成対1対1のアソシエーション
- 9. "a:1:{s:10:" a:1:{s:10: "加入者"; b:1;} ";" "a:1:{s:10:"サブスクライバ "; b:1;}"?
- 10. laravel 1対1と1対多の関係を保存する
- 11. doctrine2の同じエンティティで1対1と1対多を使用
- 12. MVC codefirstとの1対1の関係
- 13. ormliteとの1対1の実践
- 14. .net mvc3と1対1
- 15. Entity Framework 5の1対1/1対1対多の関係の両方
- 16. 匿名の訪問者がログインしたユーザーと1対1でチャットするインスタントメッセージ機能
- 17. ハイバネートと1対1の関係
- 18. MYSQLと1対1の関係
- 19. Entity Framework:プリンシパルの外部キーとの1対1または1対の関係
- 20. コンポジットキー1対1と3対1エンティティフレームワーク6コードファースト
- 21. mongodbのエンティティの1対1と多対多表現
- 22. 「ファイルシステム内のファイルと1対1の対応」
- 23. Grails Spring Security Plugin - ユーザドメインとの1対1の対応
- 24. 多対1対1リレーションシップSSAS
- 25. 1対1 LSTM
- 26. 1対1リレーションシップ
- 27. MVCスカッフォールディングとEFの1対0または1対1の関係エラー
- 28. jQueryループ1対1
- 29. Select「チャット履歴」の各ユーザIDに対して1つの結果のみ
- 30. NullPointerException @ 1対1のマッピング
誰でもご存知ですか?私の最初の考えは、チャットチャンネルを1つ作成することでした。クライアントが開始したすべてのチャットについて、chat.chat1などのチャットのサブチャンネルで作成しました。エージェント側はそのチャネルに接続して、1対1のチャットのようになりますが、それが正しい方法であるかどうかはわかりません。他の人たちはどうしていますか? – Guest
ええ、私はまずコンセプトコードのいくつかを一緒にノックするために時間を見つける必要があります。約24時間来て、私はあなたに戻ってきます。 –
素晴らしい!ありがとう!これについての良い例を見つけるのは本当に難しいです。 – Guest