网页五子棋——项目部署

devtools/2025/2/26 13:40:51/

目录

安装 openjdk 

安装 MySQL 

创建数据库和数据表

修改 WebSocket 建立连接的 url

上传项目


在项目实现完成后,我们就可以将项目部署到云服务器上(在这里使用的是 Ubuntu)

我们先在服务器上安装 jdk、mysql 等

更新软件包:

apt-get update

 

安装 openjdk 

 查找 jdk 包:

apt list | grep "jdk"

安装 jdk:

apt install openjdk-17-jdk 

查看安装 jdk 版本:

java -version  

 

安装 MySQL 

查找安装包:

apt list | grep "mysql-server"

安装MySQL:

apt install mysql-server 

查看 mysql 状态:

systemctl status mysql

 

连接 mysql 服务器:

mysql 

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

接下来,我们就可以开始部署项目了 

部署步骤:

1. 在云服务器上创建对应数据库 和 数据表

2. 对 WebSocket 建立连接的 url 进行调整

3. 打包,并上传项目

4. 运行程序,并通过外网访问页面

创建数据库和数据表

首先,我们将之前写好的 sql 代码复制粘贴到服务器中运行:

查看创建情况:

修改 WebSocket 建立连接的 url

我们之前创建的连接是针对 服务器就在浏览器本机的情况下使用的

而当我们将服务器程序部署到其他机器上时,就不能使用 127.0.0.1 了,而是需要指定机器的 ip,也就是云服务器的外网 ip

我们对其进行调整,让 ip 能够适应不同的机器:

javascript">        // 初始化 webSocketlet webSocketUrl = 'ws://' + location.host + '/findMatch';let webSocket = new WebSocket(webSocketUrl);

由于 WebSocket 服务与页面在同一台机器上, 此时,无论部署到哪个机器上,都需要先访问到 游戏大厅/游戏房间 页面,此时,location.host 的 ip 与其相同,就解决了不同机器的适配 ip 问题

注意,游戏大厅 和 游戏房间 都需要进行修改

 

上传项目

我们先借助 maven 打包项目:

打包之前,我们需要修改 mysql 连接的密码为云服务器密码:

 

先执行 clean 操作,避免之前构建的残留文件导致问题:

 

双击 package 进行打包:

打包完成:

在 target 中找到打好的 jar 包:

此时,就可以将其上传到服务器上:

Xshell 中可以直接将文件拖到到窗口,从而达到上传文件的目的,若使用其他客户端,可能需要借助 lrzsz 命令

安装 lrzsz:

apt-get install lrzsz

上传文件:

sz filename

下载文件:

rz

传输完成, 查看上传的 jar 包:


 

开放端口号:

运行程序:

java -jar gobang_system-0.0.1-SNAPSHOT.jar 

 

通过 http://IP:端口号/login.html 进行访问:

进行注册登录:

 注册两个账号并登录,验证匹配和对战功能:

通过外网访问时,加载过程会较慢,可能会有明显的延时

我们将项目修改为后台运行,并将打印到的日志保存到文件中:

nohup java -jar gobang_system-0.0.1-SNAPSHOT.jar > /logs/gobang.log &

nohup:后台运行项目指令,即使终端被关闭,程序也不会被终止

/logs/gobang_system.log:设置输出日志到 /logs/gobang_system.log

&:将命令放到后台执行

访问  http://IP:端口号/login.html:


http://www.ppmy.cn/devtools/162800.html

相关文章

【Mastering Vim 2_07】第六章:正则表达式和 Vim 宏在代码重构中的实战应用

【最新版《Mastering Vim》封面,涵盖 Vim 9.0 版特性】 文章目录 第六章 正则表达式和 Vim 宏在代码重构中的应用1 substitute 替换命令2 关于 substitute 的精确匹配3 参数列表 arglist 在跨文件操作中的应用4 Vim 正则表达式基础5 关于 magic 模式5.1 magic 模式5…

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器)的终极解决方案

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器) 离线下载vscode-server并安装: 如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获…

npm i 失败权限问题

安装完node之后, 测试全局安装一个最常用的 express 模块进行测试 失败,但是用管理员权限打开cmd 安装就成功。 报错如下: npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

给小米/红米手机root(工具基本为官方工具)——KernelSU篇

目录 前言准备工作下载刷机包xiaomirom下载刷机包【适用于MIUI和hyperOS】“hyper更新”微信小程序【只适用于hyperOS】 下载KernelSU刷机所需程序和驱动文件 开始刷机设置手机第一种刷机方式【KMI】推荐提取boot或init_boot分区 第二种刷机方式【GKI】不推荐 结语 前言 刷机需…

最长递增子序列(贪心算法)思路+源码

文章目录 题目[](https://leetcode.cn/problems/longest-increasing-subsequence/)算法原理源码总结题目 首先,要掌握动态规划加二分查找 算法原理 1.回顾dp的解法 状态表示:dp[i]表示:以i位置的元素为结尾的所有的子序列中,最长递增子序列的长度 状态转移方程:dp[i]= m…

深度学习奠基作 AlexNet 论文阅读笔记(2025.2.25)

文章目录 训练数据集数据预处理神经网络模型模型训练正则化技术模型性能其他补充 训练数据集 模型主要使用2010年和2012年的 ImageNet 大规模视觉识别挑战赛(ILSVRC)提供的 ImageNet 的子集进行训练,这些子集包含120万张图像。最终&#xff…

网络安全之Web后端PHP

目录 一、PHP基础语法 1.PHP基础 (1)php的优点 (2)PhpStorm的优点 2.PHP基本语法 3.PHP变量 4.PHP运算符 二、PHP流控与数组 1.php流程控制语句以及循环 (1)if 语句 (2)if…

如何在java中用httpclient实现rpc get请求

如果你想用 Java 的 HttpClient 实现 RPC 的 GET 请求,过程会稍微不同,因为 GET 请求通常通过 URL 参数(查询字符串)传递数据,而不是像 POST 那样通过请求体。以下是详细的讲解和示例代码。 1. GET 请求与 RPC 的特点…