|
服务器是windows+server2003
微信小程序必须要wss协议 nodejs服务端
用其他浏览器可以正常访问和使用socket,但是用微信小程序调试就不行, 这是小程序代码
![]() ![]() ![]() 这个问题搞了很久,求大神帮助 |
|
|
|
你好 请问在吗 我想知道你的这篇帖子是否已经有了答案 如果方便的话 能否告知我一下 我现在也是卡在了与你相同的地方 谢谢了 QQ676114734
|
|
|
问题已经解决 如果有人 遇到了 相同的问题 可以加我QQ
|
|
|
socket.io基于http,而微信小程序基于h5 ,换个ws库
|
|
|
var https=require('https');
var ws=require('ws'); var fs=require('fs'); var keypath='/etc/nginx/cert/43545345.key'; var certpath='/etc/nginx/cert/43545345.pem'; var users = {} var data = {} var options = { key: fs.readFileSync(keypath), cert: fs.readFileSync(certpath), }; var server=https.createServer(options, function (req, res) {//要是单纯的https连接的话就会返回这个东西 res.writeHead(403);//403即可 res.end("This is a WebSockets server!\n"); }).listen(12348); var wss = new ws.Server( { 'server': server } );//把创建好的https服务器丢进websocket的创建函数里,ws会用这个服务器来创建wss服务 //同样,如果丢进去的是个http服务的话那么创建出来的还是无加密的ws服务 wss.on( 'connection', function connection(wsConnect, req) { var uid = req.headers['uid']; var id = wsConnect._ultron.id; users[uid] = id; data[id] = uid; console.log(users, data) wsConnect.on('message', function incoming(message) { console.log('received: %s', message); }); wss.clients.forEach(function each(client) { // if (client._ultron.id == 1){ client.send(data[client._ultron.id]) // } else { // client.send('多来一个娃') // } }); }); |
|
|
这个不能 用 wx.connectSocket
你要用socket.io app.globalData.socket.emit('add user', app.globalData.userInfo.nickName) |
|
|
我也刚实现这个功能
|
|