`
腾讯攻城师tom
  • 浏览: 52472 次
  • 来自: 深圳
社区版块
存档分类
最新评论

技术文:微信小程序和服务器通信-WebSocket

阅读更多
本文主要讲一下如何建立一个基于node.js的WebSocket服务器,并在小程序中使用这个提供实时服务的服务器。

引用
H5程序俱乐部微信号:wxappclub
「H5程序俱乐部」是一个专注微信小程序学习交流,相关外包/招聘需求信息发布的微信公众号
每天发布微信小程序设计/开发/运维知识,小程序最新资讯,外包需求信息/相关人才招聘信息


node.js中已经有很多现成的第三方库,用于构建WebSocket服务。我们今天选用一个叫做websocket的库,来构建一个可以提供标准WebSocket接口的node.js服务端程序。
先建一个空文件夹,名叫ws-server,然后进入该文件夹,在命令行执行:

npm install websocket
然后在ws-server文件夹下,再新建一个名为app.js的文件,内容如下:



因为WebSocket服务是建立在HTTP之上的,所以我们看到,代码中建立了一个http server, 然后建立了一个使用了该http server的WebSocket server,并让http server监听8080端口对外提供服务。

这个服务端的功能也很简单,就是收到客户端发送的消息并打印出来,然后在接收到的消息前面加上一个[from server]的前缀后,返回给客户端。

好,我们来实现调用该服务的微信小程序代码:




首先我们需要用wx.connectSocket()方法去连接目标服务器,因为我们开发环境用的是非安全的http,所以这边的url参数是ws://打头的,在以后微信的实际运行环境中,你的服务端必须使用SSL,所以连接url就会是wss://的了。

然后需要调用wx.onSocketOpen()方法来设置WebSocket连接打开时的回调函数。当连接打开后,就可以开始向服务端发送数据了,我们在这里使用wx.sendSocketMessage()方法,向服务端发送了一个后面跟随一个随机数的Hello,World字符串。我们运行一下程序,可以看到,服务端的控制台上会打印出这样的结果:




说明服务端已经成功接收到了客户端发送的字符串消息。

之后服务端会向客户端再反馈这个消息,那客户端这边如何接收这个从服务端过来的消息呢?我们可以在小程序中,使用wx.onSocketMessage()方法,监听服务端发送到客户端的消息,正如我们上面的示例代码写的那样:

wx.onSocketMessage(function (msg) {     
    console.log(msg)
})
我们在小程序的Console上,简单的打印了从服务端过来的消息,如下所示:




这样,一个简单但完整的客户端和服务器端的WebSocket交互就完成了。如果你想关闭这个WebSocket连接,那么你可以调用wx.closeSocket()来进行关闭。

体验最新房贷计算器http://m.dai361.com
  • 大小: 279.6 KB
  • 大小: 22.8 KB
  • 大小: 5.3 KB
  • 大小: 17.3 KB
1
0
分享到:
评论

相关推荐

    微信小程序本地连接http,websocket发送消息的例子

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,提供了丰富的API和组件,方便开发者构建交互性强、用户体验良好的应用。在微信小程序中实现本地连接HTTP和WebSocket发送消息是常见的网络通信需求,尤其对于...

    微信小程序和服务器通信-WebSocket

    本文主要讲一下如何建立一个基于node.js的WebSocket服务器,并在小程序中使用这个提供实时服务的服务器。 node.js中已经有很多现成的第三方库,用于构建WebSocket服务。我们今天选用一个叫做websocket的库,来构建一...

    微信小程序 WebSocket 通信 - 在线聊天 源码

    #客户端 - 微信小程序 通过 wx.connectSocket 来创建 WebSocket 连接,来连接搭载好的Node服务器,连接之后发送数据可以通过 wx.sendSocketMessage ,可以发送数据到达客户端,同时也需要监听接收来自客户端发出的...

    微信小程序----五子棋

    5. **网络通信**:微信小程序的五子棋对战是实时的,这就需要使用WebSocket等技术实现客户端与服务器的双向通信,确保双方玩家的棋子落子动作即时同步。 6. **用户交互**:除了游戏本身,还可能包含用户登录、好友...

    一斤代码深入理解系列《四》:微信小程序和服务器通信-WebSocket ... ...

    本篇深入理解系列文章的第四篇将重点分析微信小程序与服务器进行实时通信的WebSocket协议。 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它提供了浏览器与服务器之间的持久连接,允许服务器主动向客户端...

    微信小程序Demo-学习用:修改长连接,练习用-附完整源代码.rar

    本资源是一个微信小程序Demo,旨在帮助开发者学习和实践微信小程序中的长连接(WebSocket)技术。通过修改和扩展这个示例,开发者可以更深入地理解WebSocket在小程序中的应用,为自己的项目添加实时通信功能。 该...

    微信小程序即时通工具(websocket)

    微信小程序即时通工具是利用WebSocket技术实现的一种实时通信解决方案,主要应用于微信小程序中,为用户提供类似于即时聊天或客服系统的功能。WebSocket是一种在客户端和服务器之间建立长连接的协议,允许双方进行全...

    微信小程序源码-weapp-demo.zip

    "weapp-demo"这个文件可能是压缩包中的小程序示例项目,它可能包含了上述所有知识点的实例代码,你可以通过解压并运行这个项目,深入学习和理解微信小程序的开发技术。同时,"ignore.txt"文件通常用于指示版本控制...

    微信小程序开发附源码:使用node.js实现微信小程序实时聊天功能.doc

    在微信小程序开发中,有时需要实现实时聊天功能,这通常涉及到服务器端的实时通信技术。在本案例中,开发者选择使用 Node.js 来搭建服务端,以支持微信小程序的聊天功能。以下是关于这一主题的详细解释: 首先,...

    微信小程序websocket实现即时聊天功能

    综上,微信小程序WebSocket的即时聊天功能实现涉及到了网络通信、数据处理、用户交互等多个方面。开发者不仅需要理解WebSocket的工作原理,还要熟悉微信小程序的API用法,以及良好的前端界面设计和异常处理能力。...

    基于WebSocket通信的微信小程序即时通讯模板

    基于提供的“基于WebSocket通信的微信小程序即时通讯模板”压缩包,开发者可以深入学习如何配置和使用WebSocket API,逐步构建自己的即时通讯应用。 总结,WebSocket在微信小程序中扮演着重要的角色,它简化了实时...

    如何在微信小程序的websocket上使用stomp协议1

    在微信小程序中,WebSocket 是一种实时通信技术,用于在客户端和服务器之间建立持久的双向连接。而 STOMP(Simple Text Oriented Message Protocol)是一种简单文本导向的消息协议,它允许通过 WebSocket 进行消息...

    微信小程序源码-Eater-APP-master.zip

    微信小程序提供了一套自己的API,如`wx.request()`用于网络请求,`wx.onSocketOpen()`和`wx.onSocketMessage()`用于WebSocket通信等。 4. **Page LifeCycle**:微信小程序中的每个页面都有其生命周期,包括`onLoad`...

    微信小程序源码-dingzhilianWeChat-master.zip

    5. **API接口**:微信小程序提供了大量的 API 接口,用于访问硬件功能(如摄像头、位置信息)、网络通信(请求、WebSocket)、用户授权、文件操作、多媒体处理等。 6. **生命周期**:每个小程序页面都有其特定的...

    微信小程序开发项目实例-论坛小程序(源码).zip

    - 网络通信:微信小程序提供了丰富的网络模块,如`wx.onSocketOpen`、`wx.sendSocketMessage`等,可用于WebSocket实时通信,实现论坛的实时消息推送。 - 用户交互:使用`wx.setStorageSync`和`wx.getStorageSync`...

    SenparcWebSocket为微信小程序等提供独立的WebSocket服务器端环境

    - 客户端连接:在微信小程序中,使用WebSocket API创建连接,发送和接收消息,确保与服务器端的通信顺畅。 - 错误处理:考虑异常情况,比如网络中断、服务器故障等,确保有适当的错误处理机制。 - 性能优化:根据...

    微信小程序示例剪刀石头布Websocket演示

    总的来说,这个“微信小程序示例剪刀石头布Websocket演示”涵盖了微信小程序与WebSocket技术的结合,是学习实时通信和游戏开发的一个良好实践案例。通过分析和实践这个项目,开发者能够掌握如何在微信小程序中使用...

    微信小程序实时显示传感器数据,websocket相关.zip

    总的来说,微信小程序实时显示传感器数据涉及到的技术栈包括微信小程序开发、WebSocket通信、嵌入式系统和物联网技术。通过理解这些知识点并熟练运用,你可以构建出一个高效、实时的物联网应用,让用户体验到无缝的...

    详解微信小程序实现WebSocket心跳重连

    最近在开发小程序用到了WebSocket,小程序提供了相应的原生API,与H5的API使用方式上有一些区别,所以流行的H5的一些成熟的类库使用起来有些困难,而原生API又存在一些缺陷,所以就自己实现了一套心跳重连机制。...

    微信小程序源码-智能家居.rar

    下面我们将深入探讨微信小程序的开发环境、框架、智能家居应用的特性以及可能涉及的关键技术。 1. 微信开发者工具: 开发微信小程序首先需要使用微信官方提供的开发者工具,它集成了代码编辑、预览、调试和发布等...

Global site tag (gtag.js) - Google Analytics