Java Vert.x WebSocket的writeBinaryMessage()和write()有什么不同?
我正在使用Vert.x及其Java Vert.x WebSocket的writeBinaryMessage()和write()有什么不同?,java,websocket,vert.x,Java,Websocket,Vert.x,我正在使用Vert.x及其ServerWebSocket类处理一个服务器项目 目前,我的项目使用Pump#Pump()和ServerWebSocket#write()方法向客户端发送大型二进制数据,效果很好。但是我发现,ServerWebSocket有另一种发送二进制数据的方法,writeBinaryMessage() 手册上说: writeBinaryMessage():如果此数据超过最大WebSocket帧大小,则可能会将其写入多个帧 但是我认为ServerWebSocket#write()
ServerWebSocket
类处理一个服务器项目
目前,我的项目使用Pump#Pump()
和ServerWebSocket#write()
方法向客户端发送大型二进制数据,效果很好。但是我发现,ServerWebSocket
有另一种发送二进制数据的方法,writeBinaryMessage()
手册上说:
writeBinaryMessage()
:如果此数据超过最大WebSocket帧大小,则可能会将其写入多个帧
但是我认为ServerWebSocket#write()
也通过泵送流将数据作为多个部分发送
writeBinaryMessage()
和write()
之间有什么区别?writeBinaryMessage():
- 将一段(可能较大的)二进制数据写入连接。如果此数据超过最大WebSocket帧大小,则可能会将其写入多个帧
- 向流中写入一些数据。数据放在一个内部写入队列中,写入实际上是异步进行的。要避免写入队列中的内存过多而耗尽,请在写入之前检查WriteStream.WriteQueueFullel()方法。如果使用泵,这将自动完成
- 将一段(可能较大的)二进制数据写入连接。如果此数据超过最大WebSocket帧大小,则可能会将其写入多个帧
- 向流中写入一些数据。数据放在一个内部写入队列中,写入实际上是异步进行的。要避免写入队列中的内存过多而耗尽,请在写入之前检查WriteStream.WriteQueueFullel()方法。如果使用泵,这将自动完成