我需要定制一個(gè)運(yùn)行于udp上的協(xié)議,嘗試按照手冊(cè)進(jìn)行開發(fā),發(fā)現(xiàn)udp端口完全收不到任何信息。
首先,定制一個(gè)協(xié)議文件,比如ABC。
然后配置代碼如下,運(yùn)行無效:
$worker = new Worker('ABC://0.0.0.0:1234');
// 注意直接udp協(xié)議是有效的,使用自定義協(xié)議無效
$worker->transport = 'udp'; // 使用UDP網(wǎng)絡(luò)通訊協(xié)議
// 系統(tǒng)定制的協(xié)議也一樣無效,比如TEXT,你按照手冊(cè)設(shè)置如上,也一樣無效
后來經(jīng)過測試,如果使用udp協(xié)議,再將協(xié)議設(shè)置為自定義,是有效的。
$worker = new Worker('udp://0.0.0.0:1234');
$worker->protocol = 'Protocols\\ABC';
請(qǐng)問為什么會(huì)這樣啊?
這兩種寫法都是支持的,第一種寫法在版本迭代過程中出現(xiàn)了可能的BUG,已經(jīng)給老大提交PR了,等老大審核后看吧,具體關(guān)注: https://github.com/walkor/Workerman/issues/509