小白求解小程序websocket,大神留步

weixin_39041070 2017-09-21 09:35:38
小程序websocket调试模式下能打印出服务端回调的消息,不开调试模式打印不出。
后端代码如下,用的是nodejs搭建的wss服务器
const https = require('https');
const fs = require('fs');
var ws=require('ws');

var options = {
pfx: fs.readFileSync('我的域名.pfx'),
passphrase: '证书密码'
};


var server=https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8081);

var wss = new ws.Server( { server: server} );//把创建好的https服务器丢进websocket的创建函数里,ws会用这个服务器来创建wss服务
//同样,如果丢进去的是个http服务的话那么创建出来的还是无加密的ws服务
wss.on( 'connection', function ( ws) {
ws.on( 'message', function ( msg ) {
console.log( msg );
ws.send(msg);
});
});
调试模式下如图,可以显示出callback

没有开调试模式如图


付上前端代码
var websocket = require('../../utils/websocket.js');


//获取应用实例
var app = getApp()

var message = '';

var text = '';

var user = {};

Page({
data: {
message : '',
text : text
},
bindChange: function(e) {
message = e.detail.value
},
//事件处理函数
add: function(e) {
websocket.send(user.nickName +" : "+ message);
},

onLoad: function () {

var that = this


//调用应用实例的方法获取全局数据
app.getUserInfo(function(userInfo){
user = userInfo;

websocket.connect(user, function(res) {
console.log(res)
text = res.data +"\n" + text;
that.setData({
text:text
});
})
})
}
})
前端wxml
<view>
<view class="sendmessage">
<input id="message" bindinput="bindChange"></input>
<button bindtap="add">发送</button>
</view>
</view>
<view class="historycon" >
<scroll-view scroll-y="true" class="history">
<text>{{text}}</text>
</scroll-view>
</view>
...全文
148 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧