0
我有一个Web套接字代理,接受消息并将它们传递给客户端(浏览器和Flash)。通过websocket手动执行GZIP数据?
在试图优化我希望GZIP数据,通过该网络套接字连接。这是可能的,和/或有什么其他方法可能适用于此?
我知道有一个WebSocket扩展正在根据this StockOverflow问题进行工作。
我的斯卡拉/码头应用中电流的方法:
def compressBytes(bytes:Array[Byte]) = {
val bos = new ByteArrayOutputStream
val gzip = new GZIPOutputStream(bos)
gzip.write(bytes)
gzip.close
bos.toByteArray
}
sent to the client:
def onMessage(bytes:Array[Byte], offset:Int, length:Int) {
serverSocket.connection.sendMessage(compressBytes(bytes), offset, length)
}
附注:我知道Sec-WebSocket-Extensions:permessage-放气是一种可能性,但尚未完全通过(码头9有它,我相信)
感谢
谢谢,我已经丢弃的FIL但我没有看到消息大小(wiresshark/tcpdump)有任何区别。然后我想我可能需要在websocket握手中传递一些东西(accept-encoding:gzip,deflate或Sec-WebSockets-Extensions标头)。有关如何强制Jetty gzip网络套接字流量的任何想法? – binarygiant
Filter是 GzipFilter过滤器名称> <滤波器级> org.eclipse.jetty.servlets.GzipFilter滤波器级> MIMETYPES text/html的,文本/无格式,文本/ xml,application/xhtml + xml,text/css,application/javascript,image/svg + xml param-value> –
binarygiant