环境:jdk.18   tomcat-7.0.70

把tomcat中的

两个jir包复制到

注意:最后部署的时候要删除掉这两个jar包 tomcate中已经有了

ebSocket对象的创建和服务器连接
要连接通信端点,只需要创建一个新的WebSocket实例,并提供希望连接的对端URL。
ws://和wss://前缀分别表示WebSocket连接和安全的WebSocket连接。
url = "ws://localhost:8080/echo";
w = new WebSocket(url);
建立WebSocket连接时,可以列出Web应用能够使用的协议

  1. var ws;
  2. window.onload=function(){
  3. ws = new WebSocket("ws://192.168.32.132:8080/CaiNiaoTV/websocket");
  4. ws.onopen=function(){
  5. };
  6. }
  7.  
  8. document.onkeydown=function(event){
  9. var e = event || window.event || arguments.callee.caller.arguments[0];
  10. if (e && e.keyCode == 13) {
  11. sendMsg();
  12. }
  13. };
  14.  
  15. function sendMsg(){
  16. /*
  17. * ws.onopen = function() { };
  18. */
  19.  
  20. var txt = "xxx";
  21.  
  22. /**
  23. * 发送消息
  24. */
  25. if(txt.length>0){
  26. ws.send(txt);
  27. }else{
  28. alert("请输入文字");
  29. }
  30. /**
  31. * 接收返回的消息
  32. */
  33. ws.onmessage = function (evt)
  34. {
  35. var received_msg = evt.data;
  36. console.log(received_msg);
  37. };
  38.  
  39. /**
  40. * 关闭连接
  41. */
  42. ws.onclose = function()
  43. {
  44.  
  45. };
  46.  
  47. }

后台:

  1. package com.cainiao.tv.servlet;
  2.  
  3. import java.util.Set;
  4.  
  5. import javax.websocket.Endpoint;
  6. import javax.websocket.server.ServerApplicationConfig;
  7. import javax.websocket.server.ServerEndpointConfig;
  8. /**
  9. * websocket
  10. * @author Administrator
  11. *
  12. */
  13. public class TalkSocket implements ServerApplicationConfig {
  14.  
  15. /**
  16. * 注解的方式启动
  17. * 自动扫描本地的websocket
  18. * @return scan是websocket
  19. */
  20. @Override
  21. public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scan) {
  22. // TODO Auto-generated method stub
  23. return scan;
  24. }
  25. /**
  26. * 接口方式启动
  27. */
  28. @Override
  29. public Set<ServerEndpointConfig> getEndpointConfigs(
  30. Set<Class<? extends Endpoint>> arg0) {
  31. // TODO Auto-generated method stub
  32. return null;
  33. }
  34.  
  35. }

  

  1. import java.io.IOException;
  2. import java.util.List;
  3. import javax.websocket.OnClose;
  4. import javax.websocket.OnMessage;
  5. import javax.websocket.OnOpen;
  6. import javax.websocket.Session;
  7. import javax.websocket.server.ServerEndpoint;
  8. import com.cainiao.tv.entity.Talk;
  9. import com.cainiao.tv.entity.User_Tv;
  10.  
  11. @ServerEndpoint("/websocket")
  12. public class TalkWebSocketServer {
  13. private static List<Session> sessions = new
  14. @OnOpen
  15. public void open(Session session){
  16. sessions.add(session);
  17. }
  18.  
  19. public void broadcast(List<Session> sessions,String msg){
  20. for(Iterator iter = sessions.iterator();iter.hasNext();){
  21. Session session = (Session) iter.next();
  22. try {
  23. session.getBasicRemote().sendText(msg);
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. }
  27.  
  28. }
  29. }
  30.  
  31. @OnMessage
  32. public void messgae(Session session,String msg){
  33. System.out.println("消息内容:"+msg);
  34. broadcast(this.sessions,msg)//广播
  35.  
  36. }
  37.  
  38. @OnClose
  39. public void close(Session session){
  40.  
  41. }
  42. }

基于websocket的jsp与java进行交互的更多相关文章

  1. java 从零开始手写 RPC (01) 基于 websocket 实现

    RPC 解决的问题 RPC 主要是为了解决的两个问题: 解决分布式系统中,服务之间的调用问题. 远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑. 这一节我们来学习下如何基于 we ...

  2. jsp js java

    Java技术 J a v a是一种 简单易用. 完全面向对象. 具有平台无关性且 安全可靠的主要面向I n t e r n e t的开发工具. 自从1 9 9 5年正式问世以来,J a v a的快速发 ...

  3. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  4. 基于WebSocket和SpringBoot的群聊天室

    引入 普通请求-响应方式:例如Servlet中HttpServletRequest和HttpServletResponse相互配合先接受请求.解析数据,再发出响应,处理完成后连接便断开了,没有数据的实 ...

  5. 【转】iOS基于WebSocket的聊天机制

    原文网址:http://www.jianshu.com/p/21d9b3b94cfc WebSocket 的使得浏览器提供对 Socket 的支持成为可能,从而在浏览器和服务器之间提供了一个基于 TC ...

  6. JavaScript、JSP、Java及javaEE

    对JavaScript.JSP.Java及javaEE之间区别的理解 JavaScript和Java名字极为类似,相信不少的初学者或者准备学这些知识的人对于JavaScript.JSP.Java及Ja ...

  7. 如何用CropBox实现头像裁剪并与java后台交互

    如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...

  8. JSP编译成Servlet(四)JSP与Java行关系映射

    我们知道java虚拟机只认识class文件,要在虚拟机上运行就必须要遵守class文件格式,所以JSP编译成servlet后还需要进一步编译成class文件,但从JSP文件到java文件再到class ...

  9. 分享基于 websocket 网页端聊天室

    博客地址:https://ainyi.com/67 有一个月没有写博客了,也是因为年前需求多.回家过春节的原因,现在返回北京的第二天,想想,应该也要分享技术专题的博客了!! 主题 基于 websock ...

随机推荐

  1. Jenkins构建Git manager服务器的源码

    1,下载scm manager 源码库管理,下载后解压即可: 2,运行bin目录下的scm-server.bat文件,启动服务: 3,建议将scm-server放在git客户端的安装目录下,方便管理 ...

  2. CodeForces 483C Diverse Permutation

    Diverse Permutation Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64 ...

  3. 【转载】.NET面试题系列[0] - 写在前面

    原文:.NET面试题系列[0] - 写在前面 索引: .NET框架基础知识[1] - .NET框架基础知识(1) http://www.cnblogs.com/haoyifei/p/5643689.h ...

  4. 多线程技术在iOS开发中的使用

    进程和线程 要使用多线程,首先需要理解进程和线程这2个概念.这里我简单的说一下. 所谓进程对应的是一个应用程序,负责开辟内存空间供应用程序使用,但是进程不能执行任务(指令).一个进程至少包含一条线程, ...

  5. Linux简介与厂商版本

    Linux简介与厂商版本   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 1. Linux简介 Linux可以有狭义和广义两种 ...

  6. bzoj 1467: Pku3243 clever Y 扩展BSGS

    1467: Pku3243 clever Y Time Limit: 4 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 小 ...

  7. SQL Server 临时表 Vs 表变量

    开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...

  8. ThreadLocal 实现线程内共享变量

    package com.cn.gbx; import java.util.Date; import java.util.Random; import java.util.Timer; import j ...

  9. 个人博客作业_week2

    1. 是否需要有代码规范   1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率,浪费时间的东西. 我不同意这个论点.      有句俗语’无规矩不成方圆‘,这亘古传承的至理同样适用 ...

  10. eclipse格式化代码

    在Eclipse下安装.使用Jalopy方法 http://hi.baidu.com/zdz8207/item/c2972e172ad3efdcbf9042d6 http://www.cnblogs. ...