监听的端口号怎么在微信小程序中实现一个聊天室

2021-05-12
来源:网络整理

var fs = require('fs'); const options = {   key: fs.readFileSync('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'utf8'),//证书地址   cert: fs.readFileSync('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'utf8'),//证书地址 }; var https = require('https'); var server = https.createServer(options, app);

还值得注意的是,侦听端口号需要作为代理,因为如果没有配置端口号,则所有请求的URL都不能携带端口号。

多房间交流

首先看广播的实施:

微信小程序服务端开发_微信小程序云开发实现聊天室_微信应用号微信小程序是什么

//广播方法 wss.broadcast = function broadcast(data) {   wss.clients.forEach(function each(client) {     client.send(data)   }); };

wss对象是一个存储所有连接对象的数组,每个连接对象都可以调用其自己的send方法来发送信息。

在此基础上,我们可以执行某些封装并为每个连接映射一个唯一的标识符,以便当我们需要将信息发送到特定的连接时,我们可以找到该连接。

连接的网址可用作唯一标识符:

 let sockets = {}  wss.on('connection', function connection(ws, req) {     let id = req.url.slice(5);//截几位字符串根据自己实际获得的url来看     sockets[id] = ws;     ws.send(id + '已连接');     ...

每次客户端连接时微信小程序云开发实现聊天室,URL后面都会拼接一个唯一的ID,并在服务器端获取req.url,并截取字符串以获取唯一的ID,并将连接对象存储在全局,以便在需要时使用。

微信小程序服务端开发_微信应用号微信小程序是什么_微信小程序云开发实现聊天室

在此基础上,您可以继续封装诸如加入会议室,离开会议室,在会议室中进行通信以及与特定用户私下聊天之类的功能。一般来说,它是send方法的封装。值得注意的是,send方法只能发送一个字符串,并且需要将json对象转换为字符串,然后传递给send。

以下是私人聊天的示例:

wss.notice = function notice(id, data, ws) {   // 向指定id发送   try {     ws.send('正在发送...')     var notice = JSON.stringify({       type: 'notice',       data: data     })     let target = sockets[id]     if (target) {       target.send('收到一条新消息')       target.send(notice)     } else {       ws.send('目标信道已关闭')     }   } catch (err) {     console.log(err)   } }

以上是在微信小程序中实现聊天室的方法。我相信在我们的日常工作中可能会看到或使用一些知识点。希望您可以通过本文了解更多信息。有关更多详细信息,请随时关注Yisu 。

分享