Vert的writeBinaryMessage()和write()有什么不同?x WebSocket



我正在使用Vert的服务器项目上工作。x及其ServerWebSocket

目前,我的项目使用Pump#pump()ServerWebSocket#write()方法向客户端发送大型二进制数据,效果很好。但我发现ServerWebSocket有另一种发送二进制数据的方法,writeBinaryMessage()

手册说:

writeBinaryMessage():如果超过WebSocket最大帧大小,该数据可能会被写入多个帧

但我认为ServerWebSocket#write()也通过泵送流作为多个部分发送数据。

writeBinaryMessage()write()有什么区别?

writeBinaryMessage () :

  • 将一段(可能很大的)二进制数据写入连接。如果超过WebSocket最大帧大小,该数据可能会被写入多个帧。

写()

    写一些数据到流。数据被放在一个内部写队列中,而写实际上是异步进行的。为了避免在写队列上放置太多内存而导致内存耗尽,请在写之前检查WriteStream.writeQueueFull()方法。如果使用泵,则自动完成。

返回相同类型的数据,并接受Buffer类型的形参

唯一的区别是两个函数内部处理数据的方式不同。

如果你想写一个大的二进制数据,那么你应该使用writeBinaryMessage(Buffer data)如果你动态发送很多小的消息,那么你应该使用async函数write(Buffer data)

:

  • 写(缓冲区数据)
  • writeBinaryMessage(缓冲区数据)

相关内容

  • 没有找到相关文章

最新更新