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”未定义
- websocket搭建
- spring websocket简单搭建
- Spring4+WebSocket搭建
- SSM WebSocket项目搭建
- WebSocket的搭建
- springmvc+websocket 框架搭建
- 利用spring-websocket包搭建websocket服务
- 使用spring-websocket包搭建websocket服务
- 利用spring-websocket包搭建websocket服务
- nodejs搭建websocket服务器小结
- spring框架下搭建websocket
- jee原生webSocket服务端搭建
- 搭建WebSocket服务器与客户端
- GO websocket搭建,https环境
- Html Websocket搭建右下角聊天室
- websocket服务器搭建方案简介
- websocket搭建网页端聊天室
- windows下使用WebSocket-Node搭建WebSocket服务器
- jxl : sheet.getCell(x,y)的两个参数分别是横坐标和纵坐标
- java中通过post方式访问后台服务器
- redis Hash
- centos6.8系统安装 Hadoop 2.7.3伪分布式集群
- Meld Diff 差异查看器(代码对比软件)(Ubuntu)
- websocket搭建
- Android之高德地图定位SDK集成及地图功能实现
- iOS获取User-Agent(UA)信息的方法
- C语言 <time.h>
- hihocoder 1470 公平的游戏
- 枚举类来实现单例类
- 关于arm内核编译(基于tq2440)的一些问题
- 一个好用的多选菜单
- 您的设计模式——桥梁模式【Bridge Pattern】