× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

Client->send

发送数据到远程服务器,必须在建立连接后,才可向Server发送数据。函数原型:

function Client->send(string $data) : int;
  • $data参数为字符串,支持二进制数据
  • 成功发送返回的已发数据长度
  • 失败返回false,并设置errCode属性

异步模式下如果SOCKET缓存区已满,处理逻辑请参考 Event::write

如果未执行connect,调用send会触发警告

同步客户端

  • 发送的数据没有长度限制
  • 发送的数据太大Socket缓存区塞满,底层会阻塞等待可写

异步客户端

  • 发送数据长度受到socket_buffer_size限制

  • 鬼眼

    成功发送返回的已发数据长度,这个不对,成功只会返回1.

  • 王钟凯

    连续发2个请求好像服务器有的时候收到1个,有的时候收到2个?

  • 1
    1

    服务器接收到数据之后,怎么处理?

  • 1
    1

    我也不懂怎么处理了

  • 黯刃coc

    http://rango.swoole.com/archives/category/php_swoole 看这个文章 Server无法正确接收完整的JSON字符串

  • 十七亮

    这个数据有大小限制吗?

  • anven

    连续调用两次send,比如,send('a),send('b),在接收方看到的是ab.

  • 铃CC

    不知道swoole能不能手工控制发送ack包以及检测到ack包作出回应?

  • 石坚

    用这个方法 打印出来是发送成功的,但是我的server为什么看不到发送的消息?js客户端发送的消息 server 就可以看到,这是为什么。。。

  • 老彭爱洗碗

    我也碰到了, 有没有什么方法可以表示当次数据已经发送完毕了。

  • 老彭爱洗碗

    博客里找到了,地址是 http://rango.swoole.com/archives/464

  • 史莱克

    如何保证 顺序性