• DWR、Comet4j在Nginx+Tomcat组合下的优化


    DWR、Comet4j这类推送框架在Tomcat下运行正常,但在nginx+tomcat组合下,可能会出现断连、延迟等各种问题。

    如出现此类问题,可尝试以下优化方式:

    1.Nginx-----nginx.conf

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        gzip  off; #关闭gzip
    
        server {
            listen       80;
            server_name  localhost:8080;
    
            location / {
                proxy_connect_timeout 60s;
                proxy_read_timeout 5400s;
                proxy_send_timeout 5400s;
                proxy_pass http://localhost:8080;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
    }

    2.Tomcat-----server.xml

     <Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

    3.Comet4j-----web.xml

      <!-- ****************************comet4j开始*************************** -->
        <listener>
            <listener-class>org.comet4j.core.CometAppListener</listener-class>
        </listener>
        <listener>
            <description>Observer</description>
            <listener-class> org.comet4j.listener.GPSAlarmObserver</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>/cometConn</url-pattern>
        </servlet-mapping>
       <!-- Comet4J可选参数配置-->  
    	<context-param>  
            <description>语言[支持:zh,en,默认:zh,详细http://www.loc.gov/standards/iso639-2/php/English_list.php]</description>  
            <param-name>Comet.Language</param-name>  
            <param-value>zh</param-value>  
    	</context-param>  
    	<context-param>  
            <description>请求超时时间/微妙[默认:60000,1分钟,建议至少设置3秒以上]</description>  
            <param-name>Comet.Timeout</param-name>  
            <param-value>60000</param-value>  
    	</context-param>  
    	<context-param>  
            <description>连接空闲过期时间/微妙[默认:5000,5秒]</description>  
            <param-name>Comet.ConnExpires</param-name>  
            <param-value>15000</param-value>  
    	</context-param>  
    	<context-param>  
            <description>连接检查频率/微妙[默认:5000,5秒]</description>  
            <param-name>Comet.ConnFrequency</param-name>  
            <param-value>15000</param-value>  
    	</context-param>  
    	<context-param>  
            <description>缓存信息过期时间/微妙[默认:60000,1分种]</description>  
            <param-name>Comet.CacheExpires</param-name>  
            <param-value>60000</param-value>  
    	</context-param>  
    	<context-param>  
            <description>缓存信息过期检查频率/微妙[默认:60000,1分种]</description>  
            <param-name>Comet.CacheFrequency</param-name>  
            <param-value>60000</param-value>  
    	</context-param>  
    	<context-param>  
            <description>连接模式[auto(默认)/stream/lpool]</description>  
            <param-name>Comet.WorkStyle</param-name>  
            <param-value>lpool</param-value>  
    	</context-param>  
    	<context-param>  
            <description>开启调试[false(默认)/true]</description>  
            <param-name>Comet.Debug</param-name>  
            <param-value>true</param-value>  
    	</context-param>
          <!-- ****************************comet4j结束*************************** -->
    

      

    4.DWR-----web.xml

        <servlet>  
            <servlet-name>dwr-invoker</servlet-name>  
            <servlet-class>  
                org.directwebremoting.servlet.DwrServlet  
            </servlet-class>
            <init-param>
                <param-name>allowGetForSafariButMakeForgeryEasier</param-name>
                <param-value>true</param-value>
            </init-param>  
            <init-param>  
                <param-name>crossDomainSessionSecurity</param-name>  
                   <param-value>false</param-value>  
                </init-param>  
            <init-param>  
              <param-name>allowScriptTagRemoting</param-name>  
              <param-value>true</param-value>  
            </init-param>  
            <init-param>  
              <param-name>classes</param-name>  
              <param-value>java.lang.Object</param-value>  
            </init-param>  
            <init-param>  
                <param-name>activeReverseAjaxEnabled</param-name>  
                <param-value>true</param-value>  
            </init-param>  
            <init-param>  
               <param-name>initApplicationScopeCreatorsAtStartup</param-name>  
               <param-value>true</param-value>  
            </init-param>  
            <init-param>  
                <param-name>maxWaitAfterWrite</param-name>  
                <param-value>100</param-value>  
            </init-param>  
            <init-param>  
                <param-name>debug</param-name>  
                <param-value>true</param-value>  
            </init-param>  
            <init-param>  
                <param-name>logLevel</param-name>  
                <param-value>WARN</param-value>  
            </init-param>  
        </servlet>
        <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
      </servlet-mapping>
    <body onload="init();dwr.engine.setActiveReverseAjax(true);dwr.engine.setNotifyServerOnPageUnload(true);">
  • 相关阅读:
    微信小店 API 手册
    解密微信介入智能硬件的逻辑
    秒“增”微信粉丝12亿的方法
    微信公众平台开发(99) 自定义菜单获取OpenID
    微信企业号
    微信电商再侵袭,腾讯要革淘宝的命
    微信公众平台开发(98) UnionID
    微信公众平台开发(97) 图文消息
    微信公众平台开发(96) 多个功能整合
    微信公众平台开发(95) 世界杯赛程
  • 原文地址:https://www.cnblogs.com/vayci/p/6801471.html
Copyright © 2020-2023  润新知