0

CF10 の新しい websockets 機能をクロスドメインとクロスサーバーで使用できるかどうかは誰にもわかりませんか? そして、これを行うためのサンプルコードを知っているか、持っている人はいますか? アプリで簡単なライブ ヘルプ チャットを使用していますが、それを他のサイトに適用し、サポート エージェントがユーザーとクロスドメインで対話する中央管理チャット エリアを 1 つ用意したいと考えています。

4

1 に答える 1

0

私の知る限り、そうではありません。ただし、 を使用し<cfhttp>て、メッセージを公開する他のサイトのファイルを呼び出すことができます。ここに私はこれを達成しました。

socketPublisher.cfmというファイルを作成し、ファイルへのログイン アクセスを必要としないディレクトリに保存します。

socketPublisher.cfm

<cfparam name="Request.Attributes.msgType" default="newJob">
<cfparam name="Request.Attributes.channel" default="notify">
<cfparam name="Request.Attributes.Type" default="">
<cfoutput>
<cfswitch expression="#Request.Attributes.Type#">
    <cfcase value="yourType">
        <cfscript>
            WSPublish('chat',{message: '', msgType: '#Request.Attributes.msgType#'});
        </cfscript>
    </cfcase>
    <cfdefaultcase>
        <cfscript>
            WSPublish('#Request.Attributes.channel#',{message: '', msgType: '#Request.Attributes.msgType#'});
        </cfscript>
    </cfdefaultcase>
</cfswitch>
</cfoutput>

次に、他のサイトのアクション ページで、そのファイルに対して http 要求を行う必要があります。

actionPage.cfm

<cfhttp method="Post" url="#socketURL#/_scripts/socketPublisher.cfm">
    <cfhttpparam type="URL" name="msgType" value="pendingFiles">
</cfhttp>

それはそれを行う必要があります。

また、CF10WSPublishには、アクション ページからリダイレクトしようとすると CGI スコープが変更され、エラーが発生するという既知の問題があります。より良い解決策が見つかるまで、これをその問題の回避策として使用しています。

于 2013-12-12T22:06:45.260 に答える