例子

### 例子 >i 连接插件 ```javascript let ws = new WebSocket("ws://localhost:7778/pwd=xxxx"); //创建连接 ws.onopen = () => { //连接成功后立马发送密码 console.log("机器人已连接"); setInterval(() => server.send("{}"), 6e5); //心跳包,保持连接不被系统切断 } ws.onmessage = ({data}) => { //收到消息,取出数据到 data data = JSON.parse(data); //解析为JSON if(data.event.split("_")[0] === "msg" && data.msg) { //判断此类型是否为收到消息 data.nickname = decode(data.nickname); //昵称unicode解码 if(data.group) data.group.card = decode(data.group.card); //名片unicode解码 send(data, data.msg); //我是复读机 ... //下面就是你收到群聊或私聊后要做的事 } } ws.onclose = () => { //连接断开后 console.log("机器人已断开"); } function decode(str) { //unicode解码 return unescape(str.replace(/\\(u[0-9A-Z]{4})/gm, "%$1")) //用正则替换符号再解码 } function send(data, msg) { // 自动判断私聊/群聊并回复 ws.send(JSON.stringify({ action: "send_msg", [!data.group?"uid":"gid"]: data.uid || data.group.id, msg: msg })) } ``` --- <br/> >i 发送图文混合 ```javascript ws.send(JSON.stringify({ action: "send_msg", uid: 2424261468, msg: "base64图片:[image,base64:iVBORw0KGgoAAAANSUhEUgAAACIAAAAyCAYAAAA5kQlZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAASUExURQAAAC4sPhwZJouTqEA/VmZpgOegPxcAAAHHSURBVFhH7Ze9SsRAEIBP8Qm0UbDUQ4KIpY0/WGojIhaCteBDiJW9leADWInYaGmhjaWIBDktBW30FdQZ8kkcbsklOeKE+MEybLyT3S8zs3sDrT4xM73wKfHj/U3nL6+dXP97MIl/TmkjmNje2dX5xemZxufOncZezdTfCCbm5pd1fnl+ojFvbkD9jYyPtdXIRHtW56sb6xoPD/Y0NrdqMGNpnhGbI5C3f0B9jSwtbqoJqoRO2ryqCZloR5HGyWhK41P8qDFvp62PkSwTnTjWCEVzxb+RkAmwRpjf3lxpzDqV6UM8d2NkKIk9Q+fEgOX+4Vp3+H131R2vrG1JEDM6B/vcb46E7qAQqhaekxPDI6O/ojVoc8eNkeBCpEPSJbshv1/4DZNGDMiQXJHB58Rgelj85Yi9lbNqqoR3zd+Pj/b1u6HbPJ/vZk2wfaU+Riy2g7Jj+oI1WbuzJnMhZL2F6mBQDWJChpjo1YbgJ0dCuYEFzg5Oy9QZoRG4zefNDfCfI7x7MSGDuYVcKJob4N+I3SHVQ3VYipoAv1Vj7wkWe9fsF36MsMOyfaAs/qumavwtJHTKVsX/q7G4WcgPnLLJtHKcGGm1vgApIDup0z4VMQAAAABJRU5ErkJggg==]\n\n" + "本地图片:[image,file=/Users/enternal/Desktop/icon/暗影束法杖.png]\n\n" + "网络图片:[image,https://tianyu.res.netease.com/pc/fab/20151207122943/images/yldBtn-3_ed171d8.jpg]" })); ``` --- <br/> >i 根据ip发送地图 ```javascript gid = 12345678; // 群号 function sendMap(data) { ws.send(JSON.stringify({ action: "send_jsonMsg", gid: data.gid || gid, msg: '{"app":"com.tencent.map","desc":"'+(data.desc||"地图")+'","view":"LocationShare","ver":"1.0.1.70","prompt":"[地图]'+data.posiName+'","from":1,"appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"Location.Search":{"id":"3354792866842694713","name":"'+data.posiName+'","address":"地图","lat":"'+data.x+'","lng":"'+data.y+'","from":"plusPanel"}},"config":{"forward":1,"autosize":1,"type":"card"}}' })) } res = await get("http://ip-api.com/json/106.88.88.88?fields=61439&lang=zh-CN"); // 请求http sendMap({posiName: res.country + " - " + res.regionName + " - " + res.city, x: res.lat, y: res.lon}); ``` --- <br/> >i 读取文件 ```javascript ws.onmessage = (data) => { data = JSON.parse(data); if(data.event.split("_")[0] === "msg" && data.msg) { data.nickname = decode(data.nickname); if(data.group) data.group.card = decode(data.group.card); return command(data); } if(data.code.slice(0, 4) === "获取验证") { send({uid: data.code.slice(4)}, data.data); } } function command(data) { let i = data.msg.indexOf(":"); let msg = data.msg.slice(i + 1); switch(data.msg.slice(0, i)) { case "获取验证": if(msg || data.group) return; ws.send(JSON.stringify({action: "file_read", path: "/aaa.txt", code: "获取验证" + data.uid})); break; } } command({uid: 2424261468, msg: "读取文件:"}); // 通过代码测试指令 ```