websocket搭建

来源:互联网 发布:手机做淘宝客怎么注册 编辑:程序博客网 时间:2024/06/06 03:34

今天,随手尝试了下websocket的搭建。发现还是蛮不好弄的。

websocket是啥,就是实现实时通信的一种方式,是一种长连接的http协议。平常,我们做在线聊天室会用到。不过我们平常更常用的是通过ajax的轮询进行实现。但是显然ajax定时请求后台,耗时耗力。

废话太多了,直接贴上,怎么实习WEBSOCKET搭建吧。

demo源码我已经上传到了csdn的资源库了,url: 我是demo  点击即可下载了

请参照demo再看下面的讲解:

重点讲解一

下面代码这行是重点:var webSocket=new WebSocket("ws://localhost:8080/websocket-demo/websocket/"+timestamp);

大家看到后,又会去找看有有没有import什么其他的包,不然怎么会有websocket。很失望的告诉你,没有引入其他的包。就是直接这样用的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>在线群聊</title><script type="text/javascript">    var timestamp=Date.parse(new Date());    var webSocket=new WebSocket("ws://localhost:8080/websocket-demo/websocket/"+timestamp);    webSocket.onerror = function(event) {    console.log("报错了 ");       //alert(event.data);    };     webSocket.onopen = function(event) {      document.getElementById("list").innerHTML="连接建立成功!";    };     webSocket.onmessage = function(event) {      document.getElementById("list").innerHTML+="<br/>" + event.data;    };        function sendMessage() {      var msg=document.getElementById("nickname").value+":"+document.getElementById("textarea").value;      document.getElementById("textarea").value="";      webSocket.send(msg);    } </script>

重点讲解二

对于,这个demo来说,java端的代码没啥难处。我再讲下,启动这个demo遇到的问题吧。

1、环境不够。

       1)不能用ie9一下的浏览器,笔者用的是firefox浏览器。

       2)tomcat要求7以上,但是笔者原先用的也是tomcat7,发现还是不行,查了下才知道,我的那个不是正宗的,因为缺少了一个包:websocket-api.jar。

             所以,检查下tomcat是否满足要求,检查方式:

             2.1)****apache-tomcat-7.0.76\lib目录下是否有websocket-api.jar,要是没有,不要直接从其他地方拷贝一个丢进去,建议去官网重新下载.

                     apache tomcat官网tomcat7.06下载地址:apache-tomcat-7.0.76-windows-x64.zip

             2.2)项目部署的时候,会自动把项目的web-inf/lib包带到tomcat的webapp目录下,问题就来了,这个时候tomcat自带的websocket-api.jar和工程里javax.websocket-  api-1.0.jar冲突了。解决办法,直接把部署目录下的javax.websocket-api-1.0.jar删除掉。这个问题只在tomcat7上会有,到了tomcat8就不会有这个问题了。

       3)要用jdk7,就是电脑上装的jdk环境要用jdk1.7的版本才行。如果原先项目搭建的使用用的1.6的,这个时候可以在myeclipse上做切换,怎么切换请百度:怎么切换工程项 目 的jdk版本。

2、成功的控制台日志:(这个日志是我下载上述我附上的apache tomcat7.06打印出来的版本)

     

三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server version:        Apache Tomcat/7.0.76三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server built:          Mar 9 2017 13:49:01 UTC三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server number:         7.0.76.0三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: OS Name:               Windows 7三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: OS Version:            6.1三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Architecture:          amd64三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Java Home:             D:\Java\jdk1.7.0_71\jre三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: JVM Version:           1.7.0_71-b14三月 23, 2017 6:13:33 下午 org.apache.catalina.startup.VersionLoggerListener log信息: JVM Vendor:            Oracle Corporation

3、重现在浏览器上的错误信息(javax.websocket-api-1.0.jar和websocket-api.jar冲突的情况)

Firefox 无法建立到 ws://localhost:8080/websocket-demo/websocket/1490266517000 服务器的连接。

4、ie9上的错误信息

SCRIPT5009: “WebSocket”未定义 


0 0
原创粉丝点击