workerman消息推送

workerman的消息推送

  1. Linux系統環境檢測

       Linux系統可以使用以下腳本測試本機PHP環境是否滿足WorkerMan運行要求。
       curl -Ss http://www.workerman.net/check.php | php
       上面腳本如果全部顯示ok,則代表滿足WorkerMan要求
    
  2. web-msg-sender的下載

       下載 web-msg-sender 框架url: https://www.workerman.net/download/senderzip
       啓動:linux系統cd到到框架目錄裏運行php start.php start -d
       測試:瀏覽器訪問端口http://ip:2123或者http://域名:2123
    
  3. 具體實現代碼,一般改下url ,然後端口不變,再增加對應業務邏輯即可:
class Pushmsg extends Controller
{
    public function index(){
        echo "<script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
                <meta http-equiv='Access-Control-Allow-Origin' content='*' />
                <script>
                    // 連接服務端,workerman.net:2120換成實際部署web-msg-sender服務的域名或者ip
                    var socket = io('http://www.yaowaren.com:2120');
                    // uid可以是自己網站的用戶id,以便針對uid推送以及統計在線人數
                    uid = 123;
                    // socket連接後以uid登錄
                    socket.on('connect', function(){
                        socket.emit('login', uid);
                    });
                    // 後端推送來消息時
                    socket.on('new_msg', function(msg){
                        console.log('收到消息:'+msg);
                    });
                    // 後端推送來在線數據時
                    socket.on('update_online_count', function(online_stat){
                        console.log(online_stat);
                    });
                </script>";
    }

    public function pushMsgs(){
        // 指明給誰推送,爲空表示向所有在線用戶推送
        $to_uid = "456";
        // 推送的url地址,使用自己的服務器地址
        $push_api_url = "http://www.yaowaren.com:2121/";
        $post_data = array(
           "type" => "publish",
           "content" => "這個是Jackey推送的測試數據456",
           "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 );
        curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
        $return = curl_exec ( $ch );
        curl_close ( $ch );
        var_export($return);
    }
}

更多相關的workerman知識可以關注:
關注回覆workerman,獲取相關知識。
clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章