WebSocket的使用nodejs/微信小程序

首先为什么需要WebSoct?
  • HTTP协议有一个缺陷:通信只能由客户端发起。
  • HTTP协议做不到服务器主动向客户推送信息。
而WebSocket就是为了解决这个问题而来的,说白了就是HTTP请求是客户端请求服务端响应 客户端请求服务端响应 … WebSocket是客户端请求一次 服务端响应一次就可以建立双向的连接。
1.nodejs聊天室仓库地址:https://gitee.com/he_guo_bao/websocket-chat-room
2.微信小程序使用websocket
  • wxml
<text>pages/wx/test1/test1.wxml</text>
 
<input type="text" />
 
<button bindtap="sendClick">发送内容</button>
 
<view wx:for="{{result}}">
{{item}}
</view>
  • js
var socket = null; //全局定义socket对象
Page({
    /**
     * 页面的初始数据
     */
    data: {
        result: []
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        var _this = this;
        //创建websocket
        //正式地址使用wss
        socket = wx.connectSocket({
            url: 'ws://localhost:5032/wstest/one',
            success: res => {
                console.info('创建连接成功');
                //socketTaskId: 22
                // console.info(res);
            }
        });
        // console.info(socket);
        //事件监听
        socket.onOpen(function () {
            console.info('连接打开成功');
        });
        socket.onClose(function () {
            console.info('连接关闭成功');
        });
        socket.onError(function () {
            console.info('连接报错');
        });
        //服务器发送监听
        socket.onMessage(function (e) {
            console.info(e);
            var data = e.data;
            var list = _this.data.result;
            list = list.concat([data]);
            _this.setData({
                result: list
            });
        });
    },
    //发送事件
    sendClick() {
        socket.send({
            data: '客户端测试内容',
            success: res => {
                console.info('客户端发送成功');
            }
        });
    }
})
3.当然如果你是单纯的使用里面的聊天功能
<button open-type="contact">客服聊天</button>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值