• comet4j实现web消息推送


    最近对比了几种消息推送的方案:

    xmpp(openfire)——对消息服务器的要求比较高,没有找到合适的java实现方案;

    极光推送、百度推送——自动生成的id,不好绑定本地用户,作为公告类的消息推送可以,但作为本地用户间的消息推送机制还是不太合适;

    comet4j——能实现消息推送,但是每个页面保持连接的js对性能的消耗也厉害,部分代码配置如下:

    jsp页面:

    <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中配置

        <!-- 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 -->
  • 相关阅读:
    【洛谷】P1156 垃圾陷阱【DP】
    【洛谷】P1063 能量项链【区间DP】
    Android
    Android
    Android中使用ViewPager制作广告栏效果
    Android UI 设计之 TextView EditText 组件属性方法最详细解析
    GitHub 优秀的 Android 开源项目
    下载 编译 Android源代码 和 Android kernel源代码
    UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
    Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
  • 原文地址:https://www.cnblogs.com/qsl568/p/3656633.html
Copyright © 2020-2023  润新知