apache代理请求 socket.io (巨坑)

apache代理请求 socket.io (巨坑) 用了一天的时间跳出坑来

最近在做一个支付推送,本来调试的时候好好的,然后放上去的时候发现报错了,错误是https页面不允许使用http请求资源,于是我想到了代理请求,服务器用的是Apache 我比较熟悉的是nginx ,但是思想差不多,
于是开始配置,一直配不成功,也按照百度上的要求去配置,都失败了,后面认真思考,开始配置,不料竟然成功了。所以记录一下
讲真的,一定要了解原理,不然光看别人的根本就没有用,懂的原理才能举一反三,创新
废话不多说,直接上配置文件

<VirtualHost *:443>
	
	SSLEngine on
	ServerName 域名:443
	SSLProtocol all -SSLv2 -SSLv3
	SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
	SSLHonorCipherOrder on
	SSLCertificateFile "域名证t"
	SSLCertificateKeyFile "域名证书"
	SSLCertificateChainFile "域名证书tt"
  ProxyRequests On  
  ProxyVia On  
  <Proxy *>  
   Order deny,allow  
	Allow from all  
	</Proxy> 
	
	ProxyRequests off
    RewriteEngine On
    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
    RewriteRule /(.*)           ws://127.0.0.1:48080/$1 [P,L]
    ProxyPass /socket.io http://127.0.0.1:48080/
    ProxyPassReverse /socket.io http://127.0.0.1:48080/
</VirtualHost>


前端代码

<script type="text/javascript">
 var socket = io.connect('https:/域名/', {
		path:'/socket.io',
		secure: true,
		transports: ['websocket', 'xhr-polling', 'jsonp-polling']
	});
    socket.on('connect',function() {
        alert("user connect");
        console.log("user connect");
    });

    socket.on('newAlert', function(data) {
        alert("receive alert");
        console.log("receive alert..." + data.message);
    });

    socket.on('disconnect',function() {
        alert("user disconnect");
        console.log("user disconnect");
    });

    function sendDisconnect() {
        socket.disconnect();
    }

    function sendMessage() {
        console.log("send message token");
        socket.emit('token', {
            token : $('#token').val(),
            message : 'message token'
        });
    }

</script>

有任何问题请联系我 QQ 1647093644

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值