php GatewayWorker搭建實時聊天室

2022-08-23 00:33:13 字數 2277 閱讀 1465

│ ├── 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 = '

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不是在同一臺伺服器上,則需要先將start_gateway.php中的lanip改成當前伺服器的內網ip(如果不在乙個內網可改成公網ip)。

如果gatewayclient和gatewayworker在同一臺伺服器上執行,則不用做任何更改,直接按照示例使用gatewayclient即可。

//gateway 程序,這裡使用text協議,可以用telnet測試

$gateway = new gateway("

text:

");

本地測試text協議是否正常命令:

輸入命令測試:

telnet 127.0.0.1 8282
例如:copy乙個start_gateway_ws.php檔案,如圖所示:

修改檔案內容:

//gateway_ws 程序

$gateway_ws = new gateway("

websocket:");

//gateway名稱,status方便檢視

$gateway_ws->name = '

';

在html頁面呼叫:

注意:以上的html頁面的websocket的埠號必須的同時對應

//服務註冊位址

$worker->registeraddress = '

';

可以看出:start_register.php這個檔案是專門管理其他的三個檔案的

//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...