首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >websocket二进制框架示例

websocket二进制框架示例
EN

Stack Overflow用户
提问于 2011-10-19 13:33:59
回答 3查看 11.5K关注 0票数 1

在Internet上,我找不到任何使用Javascript (作为web客户端)和Java (作为web服务器)进行"websocket二进制框架“通信的示例。

你能提供几个"websocket二进制框架“通信的例子吗?

EN

回答 3

Stack Overflow用户

发布于 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或数组缓冲区之间进行选择。

票数 1
EN

Stack Overflow用户

发布于 2011-11-19 01:19:54

Kaazing WebSocket Gateway对二进制的支持已经有一段时间了。此外,它还可以在本地不支持WebSocket的旧浏览器中工作。还有对JavaScript以外的客户端的支持。因此,您可以使用JavaScript、闪存/弹性、Silverlight、.Net或Java在WebSocket上执行二进制。您可以使用任何浏览器,回退模拟将在较旧的浏览器中工作。

后端服务器可以是Java或任何侦听TCP端口的服务器。

票数 1
EN

Stack Overflow用户

发布于 2011-12-18 21:02:07

我只知道如何解包浏览器发来的内容,下面是我的代码:

代码语言:javascript
运行
复制
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了。现在我正在研究如何向客户端发送数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7816955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档