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.websocket.Session;
 6 import javax.websocket.server.ServerEndpoint;
 7
 8 @ServerEndpoint(value = "/helloSocket")
 9 public class TestSocket {
10
11     /***
12      * 当建立链接时,调用的方法.
13      * @param session
14      */
15     @OnOpen
16     public void open(Session session) {
17
18         System.out.println("开始建立了链接...");
19         System.out.println("当前session的id是:" + session.getId());
20     }
21
22     /***
23      * 处理消息的方法.
24      * @param session
25      */
26     @OnMessage
27     public void message(Session session, String data) {
28
29         System.out.println("开始处理消息...");
30         System.out.println("当前session的id是:" + session.getId());
31         System.out.println("从前端页面传过来的数据是:" + data);
32     }
33 }

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     // 往后台服务器发送消息.
25     function sendMessage() {
26
27         var sendmsg = document.getElementById("sendMsg").value;
28         console.log("发送的消息:" + sendmsg);
29
30         // 发送至后台服务器中.
31         websocket.send(sendmsg);
32     }
33
34 </script>
35 </head>
36 <body>
37
38     <button onclick="buildConnection();">开始建立链接</button>
39     <hr>
40     <input id="sendMsg" /> <button onclick="sendMessage();">消息发送</button>
41
42 </body>
43 </html>

运行我们的项目,注意 :由于是Websocket是建立了长连接,所以当你改动了代码,之后,建议重新启动服务器。

打开浏览器,输入地址:http://localhost:8080/websocket,访问我们的项目。

注意:

  和后台交互的时候,一定要先点击:开始建立连接。你懂的...没有建立连接的话,是不能发送消息的。

先点击,开始建立连接,然后在文本框中输入内容:我是Charles,点击消息发送,在看后台日志。

后端成功接受到了前端发送的消息。

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

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

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

时间: 2024-08-29 06:12:46

WebSocket.之.基础入门-前端发送消息的相关文章

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.w

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

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

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

C语言 Socket入门示例1—— 单工通信(客户端向服务器发送消息)

如果对Windows API不太熟悉.对TCP/IP通信协议不太熟悉,或者对C语言本身不太熟悉的话,学习Socket会有点难受的.以前学习操作系统的时候,被API吓怕了,很多莫名其妙的API有着多如牛毛的参数,令人费解.学习计算机网络的时候,又有那么多的协议,并且很多协议本身比较复杂,什么三次握手建立连接,什么四次握手释放链接等等,也没有学得特别透彻.更遗憾的是,以前学C的时候,误以为自己把C学会了,误以为C就那么几个头文件而已,就一个黑框子而已. 现在,经过一段时间的痛苦磨练,又有了一些新的认

【原创】Kafka接受发送消息对象Object基础版

首先感谢 kafka 中国社区 王扬庭例子的帮助和指导~~~~~(kafka_2.9.2-0.8.1.1) kafka常用的发送消息的方法如下: Properties props = new Properties(); props.put("zookeeper.connect", "slaves2:2181,slaves3:2181,slaves4:2181"); props.put("serializer.class", "kafka

前端零基础入门:页面结构层HTML

HTML页面结构层HTML 分以下方面学习: HTML基础, HTML表格, HTML表单, 搭建网页结构 html基础 学习前端的第一门课程,为HTML基础,HTML标记语言,它是网页制作的第一步. 学习内容: HTML概念,了解HTML发展史,基础语法,常用标签(段落,图片,链接等) 结合小例子 什么是HTML HTML(Hypertext Markup Language)即超文本标记语言 html发展史 1993(IETF)HTML1.0 1995(W3C)HTML2.0 1996(W3C

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是远程对象的基本接口,是饿了高性能而设计的轻量级