web-msg-sender 踩得坑

最近准备在做消息推送,由于之前一直没有使用过socket ,对这些也比较陌生,下面是使用web-msg-sender 遇到的一些问题总结!
web-msg-sender 是基于 PHPSocket.io 开发的,而 PHPSocket.io 是基于 workerman 开发的。

官网地址:http://www.workerman.net/web-sender
github地址: https://github.com/walkor/web-msg-sender/
1、主要的业务逻辑是:
1) 开启一个端口监听 socket,供客户端链接和消息的转发
2) 开启一个Worker,用于内部请求
3) 需要发送消息,通过PHP请求 Worker
4) 客户端通过 socket.io.js 连接 socket
2、安装 web-msg-sender
安装需要下面几步:

 git clone https://github.com/walkor/web-msg-sender 
 composer install 
安装完之后会生成一个 web-msg-sender 文件夹,然后进入文件夹,安装 phpsocket.io

 composer require workerman/phpsocket.io 
安装完之后即可使用。

3、文件结构说明
```![这里写图片描述](http://static.ptbird.cn/usr/uploads/2017/06/3890610053.jpg)

其实在window下使用最方便,但是我们的应用场景就是服务器里面,下面就说下遇到的一些坑
ssl 之前没看官方手册
如果你的域名是https 那么一定要加上这行代码


    // PHPSocketIO服务
    $context1 = array(
        'ssl' => array(
            'local_cert'  => '/usr/local/nginx/conf/vhost/https_wechat/wechat.8023hp.cn.crt',
            'local_pk'    => '/usr/local/nginx/conf/vhost/https_wechat/wechat.8023hp.cn.key',
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        )
    );//这里填写主要支持https http可以不写  前端直接 访问端口即可 如果使用了https 那边必须前端的写法必须是 var socket = io('https://wechat.8023hp.cn:2125');
    $sender_io = new SocketIO(2125,$context1);
此时重启web-msg-sender 会发现报错
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
这说明客户端是用ip来连接的直接,将前端的的连接代码改成
socket = io('https://xxxxxx.com:2125');即可,接下来就可以愉快的玩耍了。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值