WebSocket.之.基础入门-后端响应消息

WebSocket.之.基础入门-后端响应消息

在《WebSocket.之.基础入门-前端发送消息》的代码基础之上,进行添加代码。代码只改动了:TestSocket.java 和 index.jsp 两个文件。

项目结构如下:

TestSocket.java 代码

 1 package com.charles.socket;
 2
 3 import java.io.IOException;
 4
 5 import javax.websocket.OnMessage;
 6 import javax.websocket.OnOpen;
 7 import javax.websocket.Session;
 8 import javax.websocket.server.ServerEndpoint;
 9
10 @ServerEndpoint(value = "/helloSocket")
11 public class TestSocket {
12
13     /***
14      * 当建立链接时,调用的方法.
15      * @param session
16      */
17     @OnOpen
18     public void open(Session session) {
19
20         System.out.println("开始建立了链接...");
21         System.out.println("当前session的id是:" + session.getId());
22     }
23
24     /***
25      * 处理消息的方法.
26      * @param session
27      */
28     @OnMessage
29     public void message(Session session, String data) {
30
31         System.out.println("开始处理消息...");
32         System.out.println("当前session的id是:" + session.getId());
33         System.out.println("从前端页面传过来的数据是:" + data);
34
35
36         String message = "你好,我是后端程序...";
37         try {
38             session.getBasicRemote().sendText(message);
39         } catch (IOException e) {
40             e.printStackTrace();
41         }
42
43     }
44 }

index.jsp 代码

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6 <title>Charles-WebSocket</title>
 7
 8 <script type="text/javascript">
 9
10     var websocket = null;
11     var target = "ws://localhost:8080/websocket/helloSocket";
12
13     function buildConnection() {
14
15         if(‘WebSocket‘ in window) {
16             websocket = new WebSocket(target);
17         } else if(‘MozWebSocket‘ in window) {
18             websocket = MozWebSocket(target);
19         } else {
20             window.alert("浏览器不支持WebSocket");
21         }
22
23         // 添加监听消息的方法
24         websocket.onmessage = function(event) {
25              console.log(event)
26              console.log(event.data)
27              document.getElementById("serverMsg").innerHTML = "<p>后端消息 :"+ event.data +"</p>"
28         }
29     }
30
31     // 往后台服务器发送消息.
32     function sendMessage() {
33
34         var sendmsg = document.getElementById("sendMsg").value;
35         console.log("发送的消息:" + sendmsg);
36
37         // 发送至后台服务器中.
38         websocket.send(sendmsg);
39     }
40
41 </script>
42 </head>
43 <body>
44
45     <button onclick="buildConnection();">开始建立链接</button>
46     <hr>
47     <input id="sendMsg" /> <button onclick="sendMessage();">消息发送</button>
48     <div id="serverMsg"></div>
49
50 </body>
51 </html>

运行项目,由于改动了代码,建议:重新启动Tomcat服务器。

项目启动后,通过浏览器访问页面,地址:http://localhost:8080/websocket

注意:

  一定要先点击,开始建立连接按钮,然后输入内容,在点击消息发送...你懂的.

现在看后端日志....

前端能发送消息,后端也能响应,一切OK...

如有问题,欢迎纠正!!!

如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9784555.html

原文地址:https://www.cnblogs.com/Charles-Yuan/p/9784555.html

时间: 2024-08-25 11:20:51

WebSocket.之.基础入门-后端响应消息的相关文章

WebSocket.之.基础入门-前端发送消息

WebSocket.之.基础入门-前端发送消息 在<WebSocket.之.基础入门-建立连接>的代码基础之上,进行添加代码.代码只改动了:TestSocket.java 和 index.jsp 两个文件. 项目结构如下图: TestSocket.java 1 package com.charles.socket; 2 3 import javax.websocket.OnMessage; 4 import javax.websocket.OnOpen; 5 import javax.webs

WebSocket.之.基础入门-断开连接处理

ebSocket.之.基础入门-断开连接处理 在<WebSocket.之.基础入门-后端响应消息>的代码基础之上,继续更新代码.代码只改动了:TestSocket.java 和 index.jsp 两个文件. 先说问题: 当前后端建立连接之后,如果此时关闭浏览器,或者点击浏览器的回退.只要退出了建立连接的页面.后台程序是会报错的.分别如下图所示: 正常建立连接页面: 现在退出当前建立连接的页面,后台日志如下所示: 1 当前session的id是:0 2 从前端页面传过来的数据是:早上好.. 3

WebSocket.之.基础入门-建立连接

WebSocket.之.基础入门-建立连接 1. 使用开发工具(STS.Eclipse等)创建web项目.如下图所示,啥东西都没有.一个新的web项目. 2. 创建java类.index.jsp页面.注意:web.xml未做任何改动. TestConfig.java 代码如下: 1 package com.charles.socket; 2 3 import java.util.Set; 4 5 import javax.websocket.Endpoint; 6 import javax.we

Android基础入门教程——3.6 响应系统设置的事件(Configuration类)

Android基础入门教程--3.6 响应系统设置的事件(Configuration类) 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家介绍的Configuration类是用来描述手机设备的配置信息的,比如屏幕方向, 触摸屏的触摸方式等,相信定制过ROM的朋友都应该知道我们可以在: frameworks/base/core/java/android/content/res/Configuration.java 找到这个类,然后改下相关设置,比如调整默认字体的大小!有兴趣可

前端开发如何学习?后端?全栈?零基础入门

这是一个2019年你成为前端,后端或全栈开发者的进阶指南: 1.你不需要学习所有的技术成为一个web开发者 2.这个指南只是通过简单分类列出了技术选项 3.我将从我的经验和参考中给出建议 4.首选我们会介绍通用的知识, 最后介绍2019年的Web的一些趋势 1.基础前端开发者 1.1 HTML & CSS 最基础的知识: 语义化的HTML元素 基础的CSS语法 Flexbox & Grid CSS变量 浏览器开发者工具 1.2 响应式布局 响应式设计将不再是网页的加分项, 而是必须的 设置

ASP.NET Core消息队列RabbitMQ基础入门实战演练

一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不是零基础教学,课程内容的侧重点是讲解的RabbitMQ的最实用.最简单的实战运用场景:Publish/Subscrib(发布/订阅)模式,发送端发送消息,单个接收端接收处理消息. 学完本次"是猴子都看的懂的消息队列RabbitMQ实战课程"后,阿笨带直接让你也能如此优雅简单的上手使用Rab

2019刘老师教你用springboot2.x开发整合微信支付的线上教育平台带源码送springboot2.x零基础入门到高级实战教程

第一部分:springboot2.x零基础入门到高级实战教程一.零基础快速入门SpringBoot2.0 1.SpringBoot2.x课程全套介绍和高手系列知识点 简介:介绍SpringBoot2.x课程大纲章节 java基础,jdk环境,maven基础 2.SpringBoot2.x依赖环境和版本新特性说明 简介:讲解新版本依赖环境和springboot2新特性概述 3.快速创建SpringBoot2.x应用之手工创建web应用 简介:使用Maven手工创建SpringBoot2.x应用 4

Android基础入门教程——4.2.3 Service精通

Android基础入门教程--4.2.3 Service精通 标签(空格分隔): Android基础入门教程 本节引言: 本节,我们继续来研究Service(服务)组件,本节将会学习下Android中的AIDL跨进程通信的一些 概念,并不深入到源码层次,暂时知道是什么,会用即可!开始本节内容~ 本节对应官方文档:Binder 1.Binder机制初涉 1)IBinder和Binder是什么鬼? 我们来看看官方文档怎么说: 中文翻译: IBinder是远程对象的基本接口,是饿了高性能而设计的轻量级

HAProxy 基础入门

Haproxy 基础入门 =============================================================================== 概述: =============================================================================== HAProxy:  1.LB CLuster均衡集群工作的协议层分类 ★LB CLuster: ⊙传输层(四层): lvs:Linux Virtu