CFWebsocket跨域?

时间:2013-06-11 15:55:01

标签: coldfusion websocket coldfusion-10

有人知道CF10中的新websockets功能是否可以跨域和跨服务器使用?有没有人知道或有一些示例代码来做到这一点? 我有一个简单的实时帮助聊天工作我的应用程序,但我想将其应用于其他网站,并有一个中央管理员聊天区域,支持代理将与用户跨域交互。

1 个答案:

答案 0 :(得分: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>

应该这样做。

CF10 WSPublish还存在一个已知问题,即在尝试从操作页面进行重定向时,它会更改CGI范围原因错误。我正在使用此作为该问题的解决方法,直到找到更好的解决方案。