zoukankan      html  css  js  c++  java
  • 微信小程序开发——websocket测试

    服务端

    在windows下执行 node  server.js

    也可参照我的前一篇部署https

    var httpServ = require('http')
    var WebSocketServer = require('ws').Server;
    var  app = httpServ.createServer().listen(8080);
    var ws = new WebSocketServer({
        server: app
    });
    
    ws.on('connection', function(wsConnect) {
        wsConnect.on('message', function(message) {
            console.log(message);
            wsConnect.send('reply');
        });
        wsConnect.on('close', function (code, reason) {
            console.log('关闭连接', code, reason)
        });
        wsConnect.on('error', function (code, reason) {
            console.log('异常关闭', code, reason)
        });
    })

    客户端

    这里介绍两种客户端,一种是微信小程序,一种是html网页。

    微信小程序

    代码示例:

    xxx.wxml

    <button bindtap='startClick'>连接</button>
    <button bindtap='sendClick'>发送</button>
    <button bindtap='closeClick'>断开</button>

    xxx.js

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        isConnect: null,
      },
    
      startClick(even) {
        wx.connectSocket({
          url: 'ws://localhost:8080/',
          method: 'GET',
          success: (res) => {
            isConnect: true
            console.log("连接成功", res)
          },
          fail: (res) => {
            isConnect: false
            console.log("连接失败", res)
          }
        });
    
        wx.onSocketOpen((res) => {
          console.log('WebSocket连接已打开!')
        });
    
        wx.onSocketError((res) => {
          console.log('WebSocket连接打开失败,请检查!')
        })
      },
    
      sendClick: function (even) {
        wx.sendSocketMessage({
          data: "From微信小程序 web socket"
        })
      },
    
      closeClick(even) {
        wx.closeSocket({
          success: (res) => {
            console.log("关闭成功...")
          },
          fail: (res) => {
            console.log("关闭失败...")
          }
        });
        wx.onSocketClose((res)=>  {
          console.log("WebSocket连接已关闭")
        })
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad(options) {
        wx.onSocketMessage((res) => {
          console.log(res.data)
          console.log(res)
        })
      }
    })

    效果截图:

     网页

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <title>WebSocket</title>
        <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet">
        <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
        <style>
            body{
                width: 96%;
                margin-left: 2%;
                margin-top: 20px;
            }
        </style>
    </head>
    <body>
    <div class="btn-group box" role="group" aria-label="...">
        <button type="button" class="btn btn-default">Oppo</button>
        <button type="button" class="btn btn-default">Vivo</button>
        <button type="button" class="btn btn-default">Apple</button>
    </div>
    <div class="page-header">
        <h4 class="info">服务器返回信息列表:</br></br></h4>
    </div>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script>
        if (window.WebSocket) {
            var ws = new WebSocket('ws://127.0.0.1:8080');
    
            ws.onopen = function () {
                console.log('连接服务器成功!');
                ws.send('startting...');
            }
            ws.onclose = function () {
                console.log('服务器关闭');
            }
            ws.onerror = function () {
                console.log("连接出错");
            }
    
            ws.onmessage = function (e) {
                document.querySelector(".box").onclick = function (e) {
                    ws.send('当前点击框的内容为:<font style="color:red;" >' + e.target.innerHTML+'</font>');
                }
                $('.info').append(e.data + '</br></br>');
            }
        }
    </script>
    </body>
    </html>

    参考链接:

    1. https://blog.csdn.net/potato512/article/details/79991342

    2. https://blog.csdn.net/medivhq/article/details/75021382

  • 相关阅读:
    许昌 地图。满屏的饭馆。
    Python中的math和保留小数位数方法
    Python中的math和保留小数位数方法
    python对XML 操作
    python对XML 操作
    python的enumerate()函数
    python的enumerate()函数
    [COJ0989]WZJ的数据结构(负十一)
    [OpenJudge 3066]随机序列
    [OpenJudge 3064]坠落的蚂蚁
  • 原文地址:https://www.cnblogs.com/lfri/p/12008265.html
Copyright © 2011-2022 走看看