comet4j實現web消息推送

 

最近對比了幾種消息推送的方案:javascript

xmpp(openfire)——對消息服務器的要求比較高,沒有找到合適的java實現方案;html

極光推送、百度推送——自動生成的id,很差綁定本地用戶,做爲公告類的消息推送能夠,但做爲本地用戶間的消息推送機制仍是不太合適;java

comet4j——能實現消息推送,可是每一個頁面保持鏈接的js對性能的消耗也厲害,部分代碼配置以下:web

 

 

jsp頁面:ajax

<script type="text/javascript" src="${ctx }/resources/js/comet4j.js"></script>
<script type="text/javascript">
    function init() {

        var kbDom1 = document.getElementById('kbb');
        JS.Engine.on( {
            hello : function(kb) {//偵聽一個channel
            
                    var strs = new Array(); //定義一數組 
                    strs = kb.split(","); //字符分割 

                    for (i = 0; i < strs.length; i++) {
                        if (strs[i] == kbDom1.value && strs[i] != '') {
                        
                            document.getElementById('toubiao').style.display = "";
                            showUnReadMsgCount();
                        }

                    }

                }
            });
        JS.Engine.start('conn');
        JS.Engine.on('start', function(cId, channelList, engine) {

        });
    }
    init();
</script>
<script>
    function showUnReadMsgCount(){
        if($("#isLogin").val() === "true"){
            $.ajax( {
                url : ctx + "/admin/getUnReadMsgCount.do",
                type : "post",
                dataType : "json",
                success : function(data) {
                    var count = data[0];
                    if(count == 0){
                        return;
                    }
                    $("#unReadCount").html("<span></span><a href='"+ctx+"/admin/receiveList.do' style='font-weight:700;'>未讀消息<label>"+count+"</label></a>");
                }
            }); 
        }
    };
</script>

 

 

 

web.xml中配置json

    <!-- comet4j start 
    <listener>
        <listener-class>org.comet4j.core.CometAppListener</listener-class>
    </listener>
    <servlet>
        <display-name>CometServlet</display-name>
        <servlet-name>CometServlet</servlet-name>
        <servlet-class>org.comet4j.core.CometServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CometServlet</servlet-name>
        <url-pattern>/conn</url-pattern>
    </servlet-mapping>

    <listener>
        <description>Comet4jMsgListener</description>
        <listener-class>com.tenchong.util.Comet4jMsgListener</listener-class>
    </listener>
    comet4j end -->
相關文章
相關標籤/搜索