我对IM这块可谓是真正的小白,所以没接触过的可以来参考参考。
在微信这个聊天工具里的小程序上实现聊天功能,总感觉怪怪的。但领导要求了,总是要干的。
然后就实时通讯这个关键词展开搜索,穿梭于网页之间。不过粘贴复制的真的太多了,找了半天也没找到想要的,不过还是提取到了关键词的WebSocket和node.js的,然后搜索这两是啥,什么关系,总算明白了一点。
最后确定了第一步需要干的是用node.js搭建服务(我是装在自己的windows下的):
1.首先到官网下载node.js,下载链接
安装很简单,双击下载好的文件,直接下一步一步,没什么特殊的选择,路径默认就好
可以打开命令行窗口输入 node -v会输出版本,来检验是否安装成功,其实这个也没什么必要
2.然后新建一个文件夹(我的node.js是安装在Ç盘的,然后再d盘下新建了个叫webSocket的文件夹)
然后用命令转到该目录下:在这个文件下安装我们要使用的模块:安装模块前需要先生成一个配置文件,不然会报错(反正我报了)
生成配置文件命令:npm init -f
执行后可以看到在该文件下多了一个叫package.json的配置文件,先不用管(后面也没管过),接下来继续安装模块的操作
刚开始我是安装的socket.io,后来发现小程序根本用不了,所以这里也不说socket.io了。我们这里用ws
安装ws命令:npm install --save ws(卸载模块命令:npm uninstall 模块名字)
3.安装好模块后,在你目录下创建一个.js文件,我这是一个ws.js
我这里肯定会比你们的文件要多,不用在意。
然后打开这个.js文件,开始编辑你的服务端代码,这个随便你用记事本还是其他什么软件
这是最简单基础的一个打开连接,响应的代码:
//引入ws模块
const WebSocket = require('ws');
//创建服务 port是端口
const wss = new WebSocket.Server({ port: 80});
//客户端连接时会进这个
wss.on('connection', function connection(ws) {
console.log('连接成功');
//客户端发送消息时会触发这个
ws.on('message', function incoming(data) {
console.log('收到消息');
//data是客户端发送的消息,这里clients.foreach是广播给所有客户端
wss.clients.forEach(function each(client) {
//把客户端发来的data,循环发给每个客户端
client.send(data);
});
});
});
这里贴上稍微比较完善的代码,这里是用数据库保存的发送的消息,用的mysql,所以需要在安装mysql模块
npm install --save mysql
代码:
这里有很多注释的代码,都是我鼓捣时用到的,可以无视或删掉
这个MySQL的数据连接需要根据自己的修改,表也是
我这用到的表就两个字段 id ,msg
var