`
duker
  • 浏览: 105990 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

websocket 规范的目标是在浏览器中实现和服务器端双向通信.双向通信可以拓展浏览器上的应用类型,例如实时的数据推送(股票行情),游戏,聊天/im 等.

 

目前在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.

 

websocket规范由两部分组成,一部分是浏览器中的 websocket api, 由w3c 制订, 一部分是websocket 协议, 由ietf制订,目前是draft状态.websocket的协议比较简单, 客户端和普通的浏览器一样通过80或者443端口和服务器进行请求握手,服务器根据http header识别是否一个websocket请求,如果是,则将请求升级为一个websocket连接,握手成功后就进入双向长连接的数据传输阶段. websocket的数据传输是基于帧的方式: 0x00 表示数据开始, 0xff表示数据结束,数据以utf-8编码. 

 

目前实现了websocket的浏览器好像只有chrome(4.0以上),而服务器端,也出现了一些实现websocket协议的项目:

jetty 7.0.1 包含了一个初步的实现


websocket api在浏览器端的广泛实现似乎只是一个时间问题了, 值得注意的是目前服务器端没有标准的api, 各个实现都有自己的一套api, 并且jcp也没有类似的提案, 所以使用websocket开发服务器端有一定的风险.可能会被锁定在某个平台上或者将来被迫升级.

 

4
0
分享到:
评论
5 楼 lythemaster 2011-11-24  
但是对Server端编程,我觉得 node.js只会成为一匹黑马,但不会改变格局。
因为,第一,node.js 是单线程应用场景有限,第二,不可能广大的程序员都去学习和转型
4 楼 lythemaster 2011-11-24  
不错,关-注中,服务端标准出来以后,Javascript将一统客户端,
将来将变成 JS+Java, JS+PHP, JS+.Net ...
3 楼 duker 2010-06-08  
xhq6632 写道
这个技术,现在应该还不成熟吧。我们应该怎么来应用呢。我自己也比较担心这个。

客户端已经标准化,且有一些浏览器已经实现(例如chrome), 但服务器端各种环境差别太大.技术选型需要斟酌.
2 楼 xhq6632 2010-06-08  
这个技术,现在应该还不成熟吧。我们应该怎么来应用呢。我自己也比较担心这个。
1 楼 fkpwolf 2010-04-08  
嗯,得有fallback

相关推荐

    java_websocket.jar

    import org.java_websocket.WebSocket; import org.java_websocket.WebSocketImpl; import org.java_websocket.framing.Framedata; import org.java_websocket.handshake.ClientHandshake; import org.java_...

    websocket.jar.zip

    WebSocket.jar是Apache JMeter工具的一个扩展插件,用于支持对WebSocket协议进行性能和负载测试。WebSocket是一种在客户端和服务器之间建立持久性连接的协议,它允许双向数据传输,即服务器和客户端可以同时发送数据...

    websocket.jar+catalina.jar

    "websocket.jar" 和 "catalina.jar" 都是与WebSocket技术相关的Java库。 `websocket.jar` 是WebSocket的Java实现,它可能包含了WebSocket服务器端的API和实现,允许开发者创建支持WebSocket协议的应用。这个库通常...

    SpringWebSocket.jar

    SpringWebSocket.jar

    Python库 | micropython-uasyncio.websocket.server-0.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:micropython-uasyncio.websocket.server-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    tomcat-websocket.jar

    tomcat-websocket.jar

    tomcat7-websocket.jar

    tomcat7-websocket.jar

    jsmpeg+websocket.rar

    总结,"jsmpeg+websocket.rar"提供的源码实现了一个利用WebSocket传输RTSP视频流,并通过JSMPEG在Web浏览器中进行解码和播放的系统。该方案特别适合对低延迟有要求的实时视频应用场景,例如监控系统、远程教育、在线...

    go-jsonrpc-websocket.rar

    conn, _, err := websocket.DefaultDialer.Dial("ws://your-server-url", nil) if err != nil { panic(err) } defer conn.Close() ``` 3. **创建jsonrpc.Client**:使用WebSocket连接创建一个`jsonrpc.Client...

    java-websocket.rar

    java实现websocket客户端, Java-WebSocket-1.3.5.jar Java-WebSocket-1.3.6.jar Java-WebSocket-1.3.7.jar Java-WebSocket-1.3.8.jar Java-WebSocket-1.3.9.jar Java-WebSocket-1.4.0.jar Java-WebSocket-...

    websocket.7z

    const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', (ws) => { console.log('客户端已连接'); ws.on('message', (message) => { console.log(`接收到客户端消息: ${message}`); // ...

    其于Javax的WebSocket Server实例

    端点类需要继承`javax.websocket.Endpoint`并使用`@ServerEndpoint`注解进行标记,例如: ```java import javax.websocket.OnClose; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import ...

    reconnecting-websocket.js

    只要把var ws = new WebSocket('ws://....');替换成var ws = new ReconnectingWebSocket('ws://....');

    websocket.js

    websocket.js

    php websocket.zip

    php 实现websocket连接,实现了客户端和服务端。客户端是html,服务端是PHP的。 只要客户端连接到服务器上,就不再断开(永久连接),一方可以不停的给对方发消息,对方可以不给出响应。使用WS协议代替心跳请求,...

Global site tag (gtag.js) - Google Analytics