首页 / JAVA / Java WebSocket基本原理
Java WebSocket基本原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java WebSocket基本原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3100字,纯文字阅读大概需要5分钟。
内容图文
![Java WebSocket基本原理](/upload/InfoBanner/zyjiaocheng/1307/7675559d97184074a48a5176c6351cf8.jpg)
WebSocket协议介绍
WebSocket协议是一个网络协议,允许两个相连的端在一个单一TCP连接上进行全双工消息通信。
在WebSocket的场景中,连接通过HTTP和WebSocket端点交互的方式建立。连接的一方发送一个专门定制的HTTP请求,启动包含其希望连接的WebSocket的URL。它开始活动并被称为打开阶段握手。如果服务器愿意接受连接,服务器制定一个称为打开阶段握手响应的特殊的HTTP响应并将其发送会客户端。此时TCP连接已经建立,能够保证WebSocket消息的往返传递。连接一直保持直到任意一方终止连接,或者某些外部因素导致连接关闭。
Java Web Socket API是最近JavaEE7平台的核心特性,因此不是用tomcat部署的用户要注意依赖一下两个包
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-websocket-api</artifactId> <version>7.0.47</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency>
创建第一个WebSocket应用,部署在Tomcat7及以上版本
服务端代码:EchoServer.java
package org.mychat.websocket.server; import javax.websocket.OnMessage; import javax.websocket.server.ServerEndpoint; /** * @author 陈胜 * 注解@ServerEndpoint是类级别注解, * 用于告诉java平台它注解的类实际上要称为一个WebSocket端点 */ @ServerEndpoint("/mychat.ws") public class EchoServer { @OnMessage public String echo(String incomingMessage){ System.out.println("接收到的消息: " + incomingMessage); return "I got this (" + incomingMessage + "),so I am sending it back"; } }
客户端代码websocket_client.js + index.html
var echo_websocket; function init(){ output = document.getElementById("output"); } function send_echo(){ var wsUri = "ws://127.0.0.1:8080/mychat/mychat.ws"; writeToScreen("Connecting to "+wsUri); echo_websocket = new WebSocket(wsUri); echo_websocket.onopen = function(evt){ writeToScreen("Connected"); doSend(document.getElementById("textID").value); }; echo_websocket.onmessage = function(evt){ writeToScreen("Received message: "+evt.data); echo_websocket.close(); }; echo_websocket.onerror = function(evt){ writeToScreen("<span style=‘color:red;‘>ERROR:</span>" + evt.data); echo_websocket.close(); }; } function doSend(message){ echo_websocket.send(message); writeToScreen("Send message: " + message); } function writeToScreen(message){ // console.log("接收到的Message:"+message); var pre = document.createElement("p"); pre.style.wordWrap = "bread-word"; pre.innerHTML = message; output.appendChild(pre); } window.addEventListener("load", init, false); <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>发送消息页面</title> <script type="text/javascript" src="js/websocket_client.js"></script> </head> <body> <h1>Echo Server</h1> <div style="text-align: left;"> <form action=""> <input onclick="send_echo()" value="Press to send" type="button"/> <input id="textID" name="message" value="Hello Web Sockets" type="text"/> </form> </div> <div id="output"></div> </body> </html>
运行结果:
虽然很简单,但是,我们已经与websocket已经有了亲密的接触。
本文出自 “阿酷博客源” 博客,请务必保留此出处http://aku28907.blog.51cto.com/5668513/1786772
原文:http://aku28907.blog.51cto.com/5668513/1786772
内容总结
以上是互联网集市为您收集整理的Java WebSocket基本原理全部内容,希望文章能够帮你解决Java WebSocket基本原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。