怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

socketio http 测试 vite vanilla创建项目

import { io } from "socket.io-client";
import axios from "axios";
const axiosInstance = axios.create({
baseURL: "http://127.0.0.1:9999",
timeout: 1000,
});
const socket = io("http://localhost:9999/", {
path: "/ws/socket.io/",
});
document.querySelector<HTMLDivElement>("#app")!.innerHTML = `
<div>
<button id='send'>发送axios请求</button>
<hr/>
<button id='open-socket'>打开socket连接</button>
<button id='send-socket'>发送socket请求</button>
<button id='close-socket'>断开socket连接</button>
</div>
`;
document.getElementById("send")!.addEventListener("click", async () => {
const res = await axiosInstance.get("/httptest");
const oRes = document.createElement("div");
oRes.innerHTML = res.data.data;
document.querySelector<HTMLDivElement>("#app")!.appendChild(oRes);
});
document.getElementById("open-socket")!.addEventListener("click", async () => {
socket.connect();
});
document.getElementById("send-socket")!.addEventListener("click", async () => {
const msg = "msg from client";
socket.emit("message", msg);
const oRes = document.createElement("div");
oRes.innerHTML = `发送: ${msg}`;
document.querySelector<HTMLDivElement>("#app")!.appendChild(oRes);
});
document.getElementById("close-socket")!.addEventListener("click", async () => {
socket.close();
});
let runningFlag = false;
document.addEventListener("keypress", (e: KeyboardEvent) => {
// 如果正在运行则返回
if (runningFlag) return;
const key = e.key;
if (key === "w") {
console.log("forward");
socket.emit("forward", 0.8);
} else if (key === "s") {
console.log("backward");
socket.emit("backward", 0.8);
} else if (key === "a") {
console.log("turnleft");
socket.emit("turnleft", 0.5);
} else if (key === "d") {
console.log("turnright");
socket.emit("turnright", 0.5);
}
});
document.addEventListener("keyup", (e: KeyboardEvent) => {
const key = e.key;
if (key === "w") {
socket.emit("stop");
} else if (key === "s") {
socket.emit("stop");
} else if (key === "a") {
socket.emit("stop");
} else if (key === "d") {
socket.emit("stop");
}
});
socket.on("completed", (res: any) => {
console.log(res);
// 收到运行完成的返回,则将runningFlag设置为false
runningFlag = false;
});
socket.on("connect", () => {
console.log("~~connect success~~");
});
socket.on("disconnect", (response: any) => {
console.log("~~ disconnect ~~" + response);
});
socket.on("message", (response) => {
console.log(`收到: ${response}`);
const oRes = document.createElement("div");
oRes.innerHTML = `收到: ${response}`;
document.querySelector<HTMLDivElement>("#app")!.appendChild(oRes);
});
posted on   超级无敌美少男战士  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示