│ ├── events.php //開發者只需要關注這個檔案
│ ├── start_gateway.php //gateway程序啟動指令碼,包括埠號等設定
│ ├── start_businessworker.php //businessworker程序啟動指令碼
│ └── start_register.php //註冊服務啟動指令碼││
└── vendor // gatewayworker框架和workerman框架原始碼目錄,此目錄開發者不用關心
特別注意:
[1]客戶端的事件及資料全部由gateway**給businessworker處理,businessworker預設呼叫events.php中的onconnect onmessage onclose處理業務邏輯。
[2]通過gatewayclient傳送的資料不會經過event.php,而是直接經由gateway程序**給客戶端。gatewayclient無法接收客戶端發來的資料。gateway::$registeraddress = '如果gatewayclient和gatewayworker不是在同一臺伺服器上,則需要先將start_gateway.php中的lanip改成當前伺服器的內網ip(如果不在乙個內網可改成公網ip)。127.0.0.1:1236';
$message =[
'type
' => 4002,
'clientid
' =>$clientid,
'publish_time
' => date('
y-m-d h:i:s
', time())
];gateway::binduid($clientid,$uid);
//在這裡傳送的資訊是不走event.php檔案的,直接廣播出去了
gateway::sendtoclient($clientid,json_encode($message));
如果gatewayclient和gatewayworker在同一臺伺服器上執行,則不用做任何更改,直接按照示例使用gatewayclient即可。
//gateway 程序,這裡使用text協議,可以用telnet測試本地測試text協議是否正常命令:$gateway = new gateway("
text:
");
輸入命令測試:
telnet 127.0.0.1 8282例如:copy乙個start_gateway_ws.php檔案,如圖所示:
修改檔案內容:
//gateway_ws 程序在html頁面呼叫: 注意:以上的html頁面的websocket的埠號必須的同時對應$gateway_ws = new gateway("
websocket:");
//gateway名稱,status方便檢視
$gateway_ws->name = '
';
//服務註冊位址可以看出:start_register.php這個檔案是專門管理其他的三個檔案的$worker->registeraddress = '
';
//register 服務必須是text協議$register = new register('
text:');
//服務註冊位址
$worker->registeraddress = '
120.120.120.120:1236
';
gateway::$registeraddress = '120.120.120.120:1236
'; //這個鏈結的位址是start_register.php
gateway::binduid($clientid,$uid);
gateway::sendtoall(json_encode($clientid));
實時聊天 記錄
基礎 時事通訊 對socket進行封裝的js var opt var el data opt 建立群通話客戶端 var eb new vertx.eventbus opt.url url 後台配置的服務位址 如 eb.onopen function 群組id 房間號 房間id 統一房間號才能再聊天室...
websocket實現實時聊天
一 websocket 1 什麼是websoket?2 websocket事件 open socket.onopen 連線建立時觸發 message socket.onmessage 客戶端接收服務端資料時觸發 error socket.onerror 通訊發生錯誤時觸發 close socket....
DM實時主備搭建
dm實時主備搭建環境說明 機器名ip位址初始狀態作業系統略10.12.21.190主庫centos7略10.12.21.191備庫centos7 例項名port nummal inst dw portmal hostmal portmal dw portgrp1 rt 0152363314110.1...