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.websocket.server.ServerApplicationConfig;
 7 import javax.websocket.server.ServerEndpointConfig;
 8
 9 public class TestConfig implements ServerApplicationConfig{
10
11     // 这个方法是使用注解进行开发
12     @Override
13     public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> arg0) {
14         // TODO 我们使用注解进行开发,简单。
15
16         // 这个方法中可以进行过滤筛选Socket,但我们现在什么都不操作,直接返回arg0 ,21行:return arg0
17         System.out.println("*******************************************");
18         System.out.println("WebSocket初始的个数:" + arg0.size());
19         System.out.println("*******************************************");
20
21         return arg0;
22     }
23
24     // 这个方法是使用配置文件进行开发
25     @Override
26     public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> arg0) {
27         // TODO Auto-generated method stub
28         return null;
29     }
30 }

TestSocket.java 代码

package com.charles.socket;

import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint(value = "/helloSocket")
public class TestSocket {

    /***
     * 当建立链接时,调用的方法.
     * @param session
     */
    @OnOpen
    public void open(Session session) {

        System.out.println("开始建立了链接...");
        System.out.println("当前session的id是:" + session.getId());
    }
}

index.jsp 代码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Charles-WebSocket</title>

<script type="text/javascript">

    var websocket = null;
    var target = "ws://localhost:8080/websocket/helloSocket";

    function buildConnection() {

        if(‘WebSocket‘ in window) {
            websocket = new WebSocket(target);
        } else if(‘MozWebSocket‘ in window) {
            websocket = MozWebSocket(target);
        } else {
            window.alert("浏览器不支持WebSocket");
        }
    }

</script>
</head>
<body>

    <button onclick="buildConnection();">开始建立链接</button>

</body>
</html>

将项目部署在Tomcat中进行运行,注意:Tomcat版本需要在7.x 以上。

由于项目中只写了一个 WebSocket(TestSocket.java),所以在启动的日志中,你能看到统计的socket仅有一个。

访问浏览器:http://localhost:8080/websocket

在页面上点击按钮:开始建立链接,看后台日志。如下图所示,有后台日志打印出来,说明前端和后端,建立连接成功。

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

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

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

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

WebSocket.之.基础入门-建立连接的相关文章

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

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

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.之.基础入门-后端响应消息

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

JDBC 入门 - 建立连接

JDBC 入门 - 建立连接 建立连接 在于数据库交互的时候, 第一件事是和数据源(Data Source)也就是数据库建立连接(Connection). 可以从这两个类从数据源取得连接: DriverManager: 在 java.sql 包中, 连接时必须要指定 URL 去连接, 在 JDBC4.0 之前都要显式地去加载驱动类, JDBC4.0后自动加载 CLASSPATH 中的驱动. DataSource: 在 javax.sql 包中, 与 Driver Manager 不同的是, 一个

java基础入门-建立能够多client链接的ServerSocket

承接上一篇文章,今天谈论一下能够多client链接的ServerSocket. 这里面注意涉及到的技术点是: 1.ServerSocket 2.多线程 这次我们分成两个类来实现,先上代码: package com.test.socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.S

java基础入门-建立可以多客户端链接的ServerSocket

承接上一篇文章,今天谈论一下可以多客户端链接的ServerSocket. 这里面注意涉及到的技术点是: 1.ServerSocket 2.多线程 这次我们分成两个类来实现,先上代码: package com.test.socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Sock

WebSocket在建立连接时通过@PathParam获取页面传值

最近用Java下使用WebSocket,有一个需求,在页面与Java后台建立连接的时候获取页面上提供的参数,也就是在@OnOpen注解的方法里面获取一次页面的参数,有一个很简单的方法可以获得.即使用@PathParam注解. 第一步: 在被websocket映射的Java类中的注解如下: @ServerEndpoint("/websocket/{relationId}/{userCode}") 其中websocket是映射地址 /{relationId}/{userCode}分别为页面

java基础-jdbc——三种方式加载驱动建立连接

1 String url = "jdbc:mysql://localhost:3306/student?Unicode=true&characterEncoding=utf-8"; 2 Properties info = new Properties(); 3 info.put("user", "canon"); 4 info.put("password", "123456"); 5 6 /** 7

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

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