与Websockets实时聊天

有没有人知道我可以使用CF10 Websockets实现一个Live聊天的任何示例或页面? 我在网上发现的所有例子都是那些用户订阅某个频道的群聊。 我需要它,这样一次聊天就可以有很多实例,例如Live Help Chat的工作方式,您可以在网站上经常看到允许您与其中一个支持代理进行聊天的实例。 任何帮助表示感谢,并希望会有例子(CF和JS)。


Ben Nadel有一篇关于使用CF10的websockets将消息推送给目标用户的不错文章。 他甚至添加了一个不错的演示视频。 这可能是你正在寻找的东西,或者至少可以帮助你开始。


这里是一些目前正在为我工​​作的示例代码。

不使用subscribeTo属性,而是使用js函数来订阅用户并传递一些标题值。 这些标题可以用作使用selector的发布调用的过滤selector

例:

<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>

起初我正在考虑实施类似的方法,但现在CF10中存在一些基本的局限性,使我无法进一步调查。

  • 缺少WSS支持,请参阅:CF10是否支持安全websocket wss?
  • Websocket在群集环境中不起作用,请参阅:https://groups.google.com/forum/#!topic/houcfug/M7YQQyrBTaQ
  • 我会在其他地方寻找任何认真的一对一实时聊天解决方案,可能是NodeJS或Java上的Socket.IO

    WSS可能会进入CF11。 我不确定。

    链接地址: http://www.djcxy.com/p/71739.html

    上一篇: Live One on One chat with Websockets

    下一篇: How to change external script url onclick?