zoukankan      html  css  js  c++  java
  • PHP:workerman消息推送系统学习

     一、github官网

    https://github.com/walkor/web-msg-sender

    二、使用

    1、下载安装

    git clone https://github.com/walkor/web-msg-sender

    composer install

    2、后端服务启动

    linux系统

    启动服务
    
    php start.php start -d
    停止服务
    
    php start.php stop
    服务状态
    
    php start.php status

    windows系统

    双击start_for_win.bat

    前端代码类似:

    // 引入前端文件
    <script src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
    <script>
    // 初始化io对象
    var socket = io('http://'+document.domain+':2120');
    // uid 可以为网站用户的uid,作为例子这里用session_id代替
    var uid = '<?php echo session_id();?>';
    // 当socket连接后发送登录请求
    socket.on('connect', function(){socket.emit('login', uid);});
    // 当服务端推送来消息时触发,这里简单的aler出来,用户可做成自己的展示效果
    socket.on('new_msg', function(msg){alert(msg);});
    </script>

    后端调用api向任意用户推送数据

    <?php
    // 指明给谁推送,为空表示向所有在线用户推送
    $to_uid = '';
    // 推送的url地址,上线时改成自己的服务器地址
    $push_api_url = "http://workerman.net:2121/";
    $post_data = array(
       'type' => 'publish',
       'content' => '这个是推送的测试数据',
       'to' => $to_uid, 
    );
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
    curl_setopt ( $ch, CURLOPT_POST, 1 );
    curl_setopt ( $ch, CURLOPT_HEADER, 0 );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
    $return = curl_exec ( $ch );
    curl_close ( $ch );
    var_export($return);

    常见问题:

    如果通信不成功检查防火墙
    /sbin/iptables -I INPUT -p tcp --dport 2120 -j ACCEPT
    /sbin/iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
    /sbin/iptables -I INPUT -p tcp --dport 2123 -j ACCEPT

    官方参考:

    https://github.com/walkor/web-msg-sender

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/13347993.html

    转载请著名出处!谢谢~~

  • 相关阅读:
    关于R文件
    Android View的Adapter
    java基础---->java多线程之Join(二)
    java基础---->多线程之Runnable(一)
    java基础---->多线程之Daemon(五)
    java基础---->多线程之priority(四)
    java高级---->Thread之CountDownLatch的使用
    java高级---->Thread之Semaphore的使用
    java框架---->quartz整合spring(一)
    springdata----->spring集成redis(一)
  • 原文地址:https://www.cnblogs.com/wukong1688/p/13347993.html
Copyright © 2011-2022 走看看