Gateway實現即時消息傳輸

由於整個的原理很複雜,不過手冊寫得很清楚。這裏只簡單的說一下步驟,仔細研究請點擊這裏手冊
javascript

安裝依賴

只要是應用,都須要安裝包吧php

  • 首先,請在你的框架或者是你本身造的輪子裏的composer.json裏打上這個。而且composer update跑一下。
"require": {
        "workerman/gateway-worker-for-win" : ">=3.0.0",
        "workerman/gatewayclient": "dev-master"
    },
複製代碼
  • 而後下載該官方例子簡單的demo, 下載解壓這個以後你會看到這個文件

小demo的文件目錄
而後把 start_for_win.batApplications這兩個文件丟到你的項目裏。基本的文件就都有了。

配置

  • 在你的入口文件index.php找到將依賴裏的將它引入require進來。
    安裝依賴的autoload.php
  • 再將start_gateway.php的這個文件裏的$gateway = new Gateway("tcp://0.0.0.0:8282");改爲$gateway = new Gateway("websocket://0.0.0.0:8282");以下圖:
    start_gateway.php位置

start_gateway.php代碼

  • 注意上圖代碼最後一行的服務註冊地址$gateway->registerAddress='127.0.0.1:1238' 你必定要保證全部的Gateway、BusinessWorker進程都是依賴於Register。因此必定要保證端口號相同哦。

運行

  • 首先,將服務開啓,若是是在windows系統上,將start_for_win.bat雙擊開啓,若是能看到三個進程啓動,說明成功。若是看到「按任意鍵繼續...」說明失敗。java

  • 而後,就能夠按照常規的mvc套路玩了,整個流程的思路是
    web

    • 首先,客戶端引入socket.io插件,而後鏈接var ws = new WebSocket("ws://127.0.0.1:8282");,並經過
    ws.onmessage = function(e) {
        console.log(e.data) //打印後臺傳輸的數據
    }
    複製代碼

    能夠一直進行監聽並獲取後臺傳輸的數據。json

    • 固然,爲了定位到每一個數據傳輸的位置,開始都會有接收client_id,須要將它傳到後臺對應的方法裏,進行與當前用戶進行綁定。
    • 而後使用Gateway的各類靜態方法,就能夠完成即時通信需求啦,細節看文檔咯~

    謝謝翻閱,多多吐槽~windows

相關文章
相關標籤/搜索