微信小程序配置websocket环境及如何在小程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序配置websocket环境及如何在小程相关的知识,希望对你有一定的参考价值。
参考技术A首先简单介绍一下什么是websocket
一、WebSocket是html5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)
首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这样一张图理解
有交集,但是并不是全部。
另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。
通俗来说,你可以用HTTP协议传输非Html数据,就是这样=。=
再简单来说,层级不一样。
二、Websocket是什么样的协议,具体有什么优点
首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。
简单的举个例子吧,用目前应用比较广泛的php生命周期来解释。
1) HTTP的生命周期通过Request来界定,也就是一个Request 一个Response,那么在HTTP1.0中,这次HTTP请求就结束了。
在HTTP1.1中进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。
但是请记住 Request = Response , 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response也是被动的,不能主动发起。
好了具体就先讲到这里,大家是不是急着看代码了?那就请往下看
用node.js配置websocket
1.首先,自然是去官网下载node.js的安装包(百度node.js即可)
2.下载完成之后,自然就是安装了,安装完成之后呢
3.先来测试看看有没有安装成功:打开cmd–然后输入 node -v 如下图
如果有版本号,那么就是安装成功了!
4.接下来依然使用的是cmd 在控制器面板输入 npm install ws 如下图
出现版本号说明安装成功
5.接下来可先测试一下是否可以使用
服务器端代码
var WebSocketServer = require('C:/Users/Administrator/node_modules/ws').Server,
wss = new WebSocketServer( port: 8080 );
wss.on('connection', function (ws) console.log("收到测试");
ws.on('message', function (message) console.log('1111') console.log(message);
);
);123456789
在小程序上依然可以使用;
接下来上客户端代码
<!DOCTYPE html><html>
<body>
<h1>WebSocket</h1>
<script src="ceshi.js"></script>
</body></html>12345678
var ws = new WebSocket("ws://127.0.0.1:8080/");
ws.onopen = function()
alert("Opened");
ws.send("0000000");
;
ws.onmessage = function (evt)
alert(evt.data);
;
ws.onclose = function()
alert("Closed");
;
ws.onerror = function(err)
alert("Error: " + err);
;123456789101112131415161718
你们可以把他们整合到一起,这个看你们自己的!
那么就会有人说了,怎么看效果呢,别急接下来就是同样打开你的cmd用node打开你刚才写好的服务端的位置,如下图
然后你就可以打开你的客户端的网页了,效果就出来了
这个就是效果
既然可以使用了,说明环境没问题了,接下来看在小程序如何使用了
我为了方便就用button按钮发起请求了
wxml代码
<button bindtap="websocket" >websocket链接</button>1
js代码
Page(
data:
path:''
,
onLoad:function(opt)
,
websocket:function()
var msg="你猜"
var socketOpen=true
wx.connectSocket(
url: 'ws://127.0.0.1:8080/'
)
wx.onSocketOpen(function(res)
wx.sendSocketMessage(
data:msg
)
)
wx.onSocketMessage(function(res)
console.log(res.data)
)
)1234567891011121314151617181920212223
注意在微信上用的时候可以先测试一下,然后在服务端加一个返回数据的函数(那个函数就在我发的代码中,但是不在服务端,你们好好看看就会发现的),剩下就没什么可说的,这是最简单的了,如果要深入的说,那是说不完的,好了,不懂可以在下方评论!
以上是关于微信小程序配置websocket环境及如何在小程的主要内容,如果未能解决你的问题,请参考以下文章