如何制作只能给udp使用的协议

augushong

我希望做的是使用worke实例化时,使用我自定义的协议,直接监听udp端口.
手册上在介绍自定义协议时没有介绍该协议是在tcp下使用的还是udp下使用的,而我在看内置的协议时,发现有的协议指定连接必须是tcp对象,有的是连接的抽象对象,有的没有指定,如图,从上到下依次是text,ws,websocket.

,
如果我自定义的协议只能给udp使用,是不是要用udp的类做连接.
还是说无论协议如何定制,想实现tcp或者udp的指定,都必须用worker的transport属性指定.
 

2537 2 0
2个回答

blogdaren
  1. 定制的协议属于应用层协议,  tcp 或 udp属于传输层协议,不是一个概念
  2. 想实现tcp或者udp,比如udp,方法有两种:
    写法1:
    new Worker('自定义协议://0.0.0.0:9999');
    $worker->transport = 'udp'; 写法2:
    new Worker('udp://0.0.0.0:9999');
    $worker->protocol = '自定义协议';
  • augushong 2018-10-18

    我现在也是这么认为的,正在实践

keytehu

协议部分tcp和udp是通用的,udp的时候connection是udp连接对象,tcp的时候connection是tcp连接对象。这个我研究过

  • augushong 2018-10-18

    如果协议是udp,运行时用tcp呢,回头搞搞,这样应该会报错吧,传入的参数不正确.

年代过于久远,无法发表回答
🔝