微信小程序配置websocket环境及如何在小程

如题所述

第1个回答  2018-06-29

首先简单介绍一下什么是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

注意在微信上用的时候可以先测试一下,然后在服务端加一个返回数据的函数(那个函数就在我发的代码中,但是不在服务端,你们好好看看就会发现的),剩下就没什么可说的,这是最简单的了,如果要深入的说,那是说不完的,好了,不懂可以在下方评论!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网