前端模拟 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>
相关推荐
钛态7 小时前
Vite 中的 CSS 工程化:从 CSS Modules 到 UnoCSS 的渐进式迁移
前端·vue·react·web
虎王物联7 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
Csvn9 小时前
原型链、this 与闭包内存:三座深水区一次打通(含内存泄漏排查实战)
前端·javascript
葡萄城技术团队9 小时前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
浪兎兎9 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
Patrick_Wilson10 小时前
iOS Safari Clipboard API 权限弹窗问题
前端·ios·safari
楷哥爱开发11 小时前
TikTok Shop新加坡本土店入驻:如何选择新加坡本土住宅IP?
网络·网络协议·tcp/ip
OpenTiny社区11 小时前
Naive UI × GenUI SDK:自定义物料库搭建实战
前端·ai编程
kyriewen11 小时前
我拿 4 个真实前端任务试了 GLM-5.3 Flash:代码一遍跑通,账单 4 分钱
前端·程序员·ai编程
IT_陈寒11 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端