前端模拟 websocket 请求小工具

背景:

后端写好websocket 接口后,用postman的某些版本无法直接模拟websocket请求,所以想着自制一个小工具。

使用方法:

直接复制以下代码到文本文件中,修改服务端端地址,保存为 .html的后缀名,用浏览器打开即可直接使用。

截图:

代码如下:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebSocket Client</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        #messages {
            width: 400px;
            height: 300px;
            border: 1px solid #ccc;
            overflow-y: scroll;
            padding: 10px;
            margin-bottom: 10px;
        }
        input[type="text"] {
            width: 300px;
            padding: 5px;
        }
        button {
            padding: 5px 10px;
        }
    </style>
</head>
<body>
    <h1>WebSocket Client</h1>
    <div id="messages"></div>
    <input type="text" id="messageInput" placeholder="Type a message...">
    <button onclick="sendMessage()">Send</button>

    <script>
        let socket;

        function connect() {
            // Replace 'ws://example.com/socket' with your WebSocket server URL
            socket = new WebSocket('ws://localhost:8088/ws?token=333opqrst');

            socket.onopen = () => {
                console.log('Connected to WebSocket server');
            };

            socket.onmessage = (event) => {
                const messagesDiv = document.getElementById('messages');
                const messageElement = document.createElement('div');
                messageElement.textContent = `B: ${event.data}`;
                messagesDiv.appendChild(messageElement);
            };

            socket.onclose = () => {
                console.log('Disconnected from WebSocket server');
            };
        }

        function sendMessage() {
            if (!socket || socket.readyState !== WebSocket.OPEN) {
                alert('Not connected to the WebSocket server.');
                return;
            }

            const messageInput = document.getElementById('messageInput');
            const message = messageInput.value;
            socket.send(message);

            const messagesDiv = document.getElementById('messages');
            const messageElement = document.createElement('div');
            messageElement.textContent = `A: ${message}`;
            messagesDiv.appendChild(messageElement);

            messageInput.value = '';
        }

        window.onload = connect;
    </script>
</body>
</html>
相关推荐
C_心欲无痕11 分钟前
nginx - alias 和 root 的区别详解
运维·前端·nginx
不一样的故事1262 小时前
下的 “Wi-Fi参数配置” 列表,但您当前选中的导航菜单项是 “IP规划”。您遇到的 “IP加载不出来” 问题,很可能
网络协议·tcp/ip·华为
我是苏苏2 小时前
Web开发:C#通过ProcessStartInfo动态调用执行Python脚本
java·服务器·前端
无羡仙3 小时前
Vue插槽
前端·vue.js
用户6387994773053 小时前
每组件(Per-Component)与集中式(Centralized)i18n
前端·javascript
SsunmdayKT3 小时前
React + Ts eslint配置
前端
开始学java4 小时前
useEffect 空依赖 + 定时器 = 闭包陷阱?count 永远停在 1 的坑我踩透了
前端
zerosrat4 小时前
从零实现 React Native(2): 跨平台支持
前端·react native
狗哥哥4 小时前
🔥 Vue 3 项目深度优化之旅:从 787KB 到极致性能
前端·vue.js