zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JavaWeb-过滤器入门
    JavaWeb-监听器
    JavaWeb-session的钝化和活化
    Create-React-App项目外使用它的eslint配置
    三种方法在当前目录下打开cmd命令窗口
    js脚本实现自动上传至github
    js中的柯里化
    从小白到使用antd+react+react-router+issue+es6搭建博客
    react在router中传递数据的2种方法
    教你怎么看网站是用react搭建的
  • 原文地址:https://www.cnblogs.com/Charles-Yuan/p/9784555.html
Copyright © 2011-2022 走看看