• 原生 websocket


    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport"
    content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>

    <script>
    var toName;
    var username;
    function showChat(name){
    toName = name;
    // 显示聊天对话框
    $('#chatArea').css("display", "inline");
    // 显示正在和谁聊天
    $('#chatMes').html("正在和<span>toName</span>聊天")
    }

    $(function () {
    $.ajax({
    url: 'getUsername',
    success: function (res) {
    username = res;
    $("#username").html("用户:" + res + "<span style='color: green'>在线</span>")
    },
    async: false // 必须同步
    })

    // 创建webSocket对象
    var ws = new WebSocket("ws://localhost/chat");

    // 给ws绑定事件
    ws.onopen = function () {
    // 在建立连接后需要做什么事?
    // 显示在线信息
    $('#userName').html("用户:" + username + "<span>在线</span>")
    }

    // 接收到服务端推送的消息后触发
    ws.onmessage = function (evt) {
    // 获取服务端推送过来的消息
    var dataStr = evt.data;

    // 将dataStr 转化为json对象
    var res = JSON.parse(dataStr);

    // 判断是否是系统消息
    if(res.isSystem){
    // 系统消息

    } else {
    // 不是系统消息

    }
    }

    ws.onclose = function () {
    // 显示离线信息
    $('#userName').html("用户:" + username + "<span>离线</span>")
    }

    $('#submit').click(function () {
    // 获取输入的内容
    var data = $('#context_text').val();

    // 清除输入区的内容
    $('#context_text').val("");

    var json = {"toName": toName, "message": data}

    // 发送数据给服务端
    ws.send(JSON.stringify(json))
    })


    })



    </script>

    </body>
    </html>
  • 相关阅读:
    pytest之fixture的详细使用
    pytest之自定义标记mark
    解决pytest.mark自定义标签导致的warning
    pytest之参数化parametrize的使用
    Jenkins上allure报告清空上一次运行记录
    Jenkins配置从节点并生成allure测试报告
    《编程珠玑》笔记:数组循环左移
    精确覆盖 DLX
    海量数据的插入和查找 bloom filter
    ORACLE数据库的一些限制
  • 原文地址:https://www.cnblogs.com/xushan03/p/15011883.html
Copyright © 2020-2023  润新知