0

ASP.Net MVC Web アプリケーションで UCWA API を使用して実装されたプレーン テキストで正常に動作する単純なチャット アプリケーションがあります。次に、書式設定されたテキストを実装する必要があります。

UCWA: 高度なチャット オプションの統合を参照すると 、メッセージを に送信する前に、現在のをucwa.Transport.clientRequestに設定する必要があることがわかりました。contentTypetext/htmltext/plain

だから私は以下に示すようにメッセージを送信する機能を持っています:

function sendMessage(displayName, msg, timestamp) {

            var encodedMsg = encodeURIComponent(msg);

            ucwa.Transport.clientRequest({
                url: messagingLinks.SendMessage + "?SessionContext=" + ucwa.GeneralHelper.generateUUID(),
                type: "post",
                contentType: "text/html",
                data: encodedMsg,
                callback: function () {
                    addMessageToChat(displayName, encodedMsg, timestamp);
                }
            });
        }

の実装はhandleMessage()以下の通りです。

function handleMessage(data, parts) {

            alert("Inside Handle message");

            if (!data._embedded.message._links.plainMessage) return false;
            
            var message = decodeMessage(data._embedded.message._links.plainMessage.href);

            var decodedMsg = decodeURIComponent(message);
            addMessageToChat(data._embedded.message._links.participant.title, decodedMsg, formatTime(new Date(Date.now())));
        
        }

上記の実装の問題は、受信側で handleMessage() メソッドが入力されていないことです。これは、着信メッセージを受信して​​いないことを意味します。

誰かが私が間違っている場所を指摘できますか?書式設定されたテキストを送信できるように、上記の変更と共に行う必要がある他の変更はありますか? サンプルは同じことに関して本当に役に立ちます。

どんな提案でも十分です。前もって感謝します。

編集:

示唆されたように、私は自分のmakeMeAvailable方法を修正しました。以下は、同じの定義ですAuthentication.js

function makeMeAvailable() {
                if (!_authenticated) {
                    cache.read({
                        id: "main"
                    }).done(function (cacheData) {
                        if (cacheData) {
                            var data = {
                                SupportedModalities: ["Messaging"],
                                supportedMessageFormats: ["Plain","Html"]
                            };

                            transport.clientRequest({
                                url: cacheData._embedded.me._links.makeMeAvailable.href,
                                type: "post",
                                data: data,
                                callback: handleState
                            });
                        }
                    });
                } else {
                    handleState({
                        status: 204
                    });
                }
            }

ただし、出力は同じです。APIに関する 2 番目の提案はcommunication、私はそれを見つけることができません。

これに関する提案はありますか?

4

2 に答える 2