use binarybuffer protocol