【发布时间】:2014-02-13 00:23:58
【问题描述】:
我有一个网络套接字代理,它接受消息并将它们传递给客户端(浏览器和 Flash)。
为了进行优化,我希望对通过该 Web 套接字连接的数据进行 GZIP 压缩。这是否可能,和/或其他可能适用的方法是什么?
我知道根据this StockOverflow 问题正在开发一个 WebSocket 扩展。
我目前在 Scala/Jetty 应用程序中的方法:
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-deflate 是一种可能性,但尚未完全采用(我相信 Jetty 9 有)
谢谢
【问题讨论】:
标签: sockets scala compression gzip