在Internet上,我找不到任何使用Javascript (作为web客户端)和Java (作为web服务器)进行"websocket二进制框架“通信的示例。
你能提供几个"websocket二进制框架“通信的例子吗?
发布于 2011-10-20 06:51:37
Jetty至少从版本7.5.2开始就支持WebSockets中的二进制帧。下面是一个包含二进制帧的Jetty示例:https://www.eclipse.org/jetty/documentation/9.4.x/jetty-websocket-api-send-message.html
从服务器的角度来看,发送和接收二进制数据的区别很小,这只是一个操作码的改变。发送文本时,您只能使用UTF-8编码的数据。对于二进制,你就没有这个限制了。
从浏览器的角度来看,如果浏览器支持二进制数据(实际上只有最新版本的Chrome支持),那么发送二进制数据就需要使用WebSocket对象上的send()
方法发送一个数组缓冲区或blob。如果服务器发送二进制帧,则会自动接收二进制数据。但是,您可以通过在WebSocket对象实例上设置binaryType
属性,在接收blobs或数组缓冲区之间进行选择。
发布于 2011-11-19 01:19:54
Kaazing WebSocket Gateway对二进制的支持已经有一段时间了。此外,它还可以在本地不支持WebSocket的旧浏览器中工作。还有对JavaScript以外的客户端的支持。因此,您可以使用JavaScript、闪存/弹性、Silverlight、.Net或Java在WebSocket上执行二进制。您可以使用任何浏览器,回退模拟将在较旧的浏览器中工作。
后端服务器可以是Java或任何侦听TCP端口的服务器。
发布于 2011-12-18 21:02:07
我只知道如何解包浏览器发来的内容,下面是我的代码:
socket.ondata = function(src,start,end) {
src = src.slice(start,end);
var maskKeys = [src[2],src[3],src[4],src[5]];
var dest = new Array();
for(var i=0;i<src.length-6;i++){
var mKey = maskKeys[i%4];
dest[i] = mKey ^ src[6+i];
}
console.log(new Buffer(dest).toString());
}
从这里找到:http://songpengfei.iteye.com/blog/1178310
Link里面有一个压缩的c源代码,我把它改成node了。现在我正在研究如何向客户端发送数据。
https://stackoverflow.com/questions/7816955
复制相似问题