国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman服務(wù)端給客戶端發(fā)心跳檢測,客戶端收不到?

phper

還有就是workerman多少次未收到客戶端心跳檢測回應(yīng)會認(rèn)為是掉線的?

// 心跳間隔
$gateway->pingInterval = 2;
// 心跳數(shù)據(jù)
$gateway->pingData = '{"type":"ping"}';

websocket客戶端可以收到{"type":"ping"},但是app端收不到,請問是什么問題呢?

7715 8 0
8個回答

walkor 打賞

app也是連的websocket端口么?
如果app也是連的websocket端口,app需要完成websocket握手過程,否則無法建立websocket連接,也就無法收到心跳數(shù)據(jù)

  • phper 2015-08-27

    app使用的是tcp,不是連的websocket

walkor 打賞

手冊這里有抓包教程,可以看下app是否完成了websocket握手
http://doc3.workerman.net/debug/tcpdump.html

  • 暫無評論
phper

app使用的是tcp連接,不是websocket,收不到心跳檢測

  • 暫無評論
walkor 打賞

請抓包確認(rèn)下服務(wù)端是否發(fā)送了心跳

  • phper 2015-08-27

    服務(wù)端沒發(fā)送心跳,但是設(shè)置了心跳間隔和心跳數(shù)據(jù),會是什么問題呢?
    $gateway->pingInterval = 2;
    $gateway->pingData = '{"type":"ping"}';

walkor 打賞

把整個文件貼下吧
還有啟動的界面

  • 暫無評論
phper

啟動界面:

# php start.php start -d
Workerman start in DAEMON mode
----------------------- WORKERMAN -----------------------------
Workerman version:3.1.8          PHP version:5.4.43
------------------------ WORKERS -------------------------------
user          worker              listen                    processes status
root          ChatBusinessWorker  none                       1         
root          ChatGateway         Websocket ://0.0.0.0:7272   1         
root          apptcp              tcp ://0.0.0.0:55250        1         
root          WebServer           http ://0.0.0.0:55151       2         
----------------------------------------------------------------
Input "php start.php stop" to quit. Start success.

start_gateway.php 代碼:

<?php 

use \Workerman\Worker;
use \GatewayWorker\Gateway;
use \Workerman\Autoloader;

// 自動加載類
require_once __DIR__ . '/../../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);

// gateway 進(jìn)程
$gateway = new Gateway("Websocket://0.0.0.0:7272");
// 設(shè)置名稱,方便status時(shí)查看
$gateway->name = 'ChatGateway';
// 設(shè)置進(jìn)程數(shù),gateway進(jìn)程數(shù)建議與cpu核數(shù)相同
$gateway->count = 1;
// 分布式部署時(shí)請?jiān)O(shè)置成內(nèi)網(wǎng)ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
// 則一般會使用4001 4002 4003 4004 4個端口作為內(nèi)部通訊端口 
$gateway->startPort = 3000;
// 心跳間隔
$gateway->pingInterval = 2;
// 心跳數(shù)據(jù)
$gateway->pingData = '{"type":"ping"}';

// ########新增端口支持socket開始######
// 新增55250端口,開啟socket連接
$gateway_text = new Gateway("tcp://0.0.0.0:55250");
// 進(jìn)程名稱,主要是status時(shí)方便識別
$gateway_text->name = 'apptcp';
// 開啟多少text協(xié)議的gateway進(jìn)程
$gateway_text->count = 1;
// 本機(jī)ip(分布式部署時(shí)需要設(shè)置成內(nèi)網(wǎng)ip)
$gateway_text->lanIp = '127.0.0.1';
// gateway內(nèi)部通訊起始端口,起始端口不要重復(fù)
$gateway_text->startPort = 2500;
// 心跳間隔
$gateway_text->pingInterval = 1;
$gateway_text->pingData = '{"type":"ping"}';

// 如果不是在根目錄啟動,則運(yùn)行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

參考手冊用抓包工具對55250端口抓沒看到{"type":"ping"}

  • 暫無評論
walkor 打賞

運(yùn)行
telnet ip 55250
看下是否有心跳,如果有的話,就是客戶端的問題

  • 暫無評論
phper

估計(jì)是客戶端的問題 謝謝walkor老大

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??