uniapp中使用mqtt,支持app,h5,小程序,使用node搭建mqtt本地服务,实现发布,订阅和接收消息
一:本地node搭建MQTT服务器
1 创建文件夹,在文件夹中添加依赖包
mqtt:npm install mqtt --save
mosca:npm install mosca --save
2 创建mqtt.js文件,并添加代码 (mtqq 服务端)
var mosca = require('mosca'); //构建服务器
// 此处配置mqtt的http客户端,尤为重要,http.port则为你HTTP访问端口,可以在网页上输入127.0.0.1:8888(端口),能请求成功则配置成功
var MqttServer = new mosca.Server({
port: 8083,
http: {
port: 8888,
bundle: true,
static: './'
}
});
//监听链接
MqttServer.on("clientConnected", function(client) {
console.log("client connected", client.id);
});
//监听mqtt的主题消息
MqttServer.on("published", function(packet, client) { //当客户端有连接的时候,发布主题消息
var topic = packet.topic;
console.log(packet);
switch (topic) {
case 'test':
console.log("message-publish", packet.payload.toString());
//mqtt转发主题消息
MqttServer.publish({
topic: 'other',
payload: '这是服务端发过来的消息!'
});
break;
}
});
MqttServer.on('ready', function() {
console.log("mqtt is running....");
});
3 创建publish文件,并添加代码 (mqtt 发布者)
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://127.0.0.1:8083');//连接到服务端
var num = 1;
var qtt = {};//定义消息(可以为字符串,对象等)
setInterval(function() {
qtt.title = 'publish';
qtt.text = '这是第'+num+'条测试消息';
client.publish('test',JSON.stringify(qtt),{qos:1,retain:true});//hello mqtt +
num++
console.log("publish 发布了一条内容为text的消息")
},2000);
4 创建subclient文件,并添加代码 (mqtt 订阅者)
// 接收消息的客户端;
var mqtt = require('mqtt');
let options = {
clientId:"test-id",
connectTimeout: 600000,
clean: true
}
var client2 = mqtt.connect("mqtt://127.0.0.1:8083",options);
console.log(client2)
//订阅主题为test的消息
client2.subscribe('test',{qos:1},function(err){
if(!err) {
console.log('订阅主题成功')
}else{
console.log(err)
}
});
client2.on('message',function(top,message) {
console.log(message.toString());
});
5 在当前文件夹下打开三个命令窗口,依次运行
node mqtt.js
node publish.js
node subclient.js
ps:遇到 schema 报错需注释掉 /node_modules/jsonschema/lib/validator.js 中的如下代码
if((typeof schema !== 'boolean' && typeof schema !== 'object') || schema === null){
throw new SchemaError('Expected `schema` to be an object or boolean');
}
运行后的效果截图
至此,本地成功搭建mqtt服务端
二:在uniapp中使用mqtt,在H5和app端实现订阅,接收消息
1 创建一个uniapp 默认项目,并引入node依赖
npm install mqtt@3.0.0
2 在组件中发起订阅,订阅方法如下
connect() {
var self = this
var subscribe = "test"
var mqtt = require('mqtt/dist/mqtt.js')
// #ifdef H5
let options = {
clientId:"H5_test",
connectTimeout: 600000,
clean: true
}
// 此处的端口为mqtt.js中的http端口,否则H5和手机连接不上mqtt服务器
var client = mqtt.connect('ws://127.0.0.1:8888/mqtt',options)
// #endif
// #ifdef MP-WEIXIN||APP-PLUS
let options = {
clientId:"APP_test",
connectTimeout: 600000,
clean: true
}
// 此处需要改成你的主机ip,并保证测试手机跟你的电脑处于同一个局域网
var client = mqtt.connect('wx://xxx.xxx.x.xxx:8888/mqtt',options)
// #endif
client.on('connect', function(res) {
uni.showToast({
title:"连接成功",
duration:2000,
icon:"none"
})
client.subscribe(subscribe, function(err) {
if (!err) {
uni.showToast({
title:"订阅成功",
duration:2000,
icon:"none"
})
}
})
}).on('message', function(topic, message) {
console.log(JSON.parse(message.toString()))
}).on('reconnect', function(topic, message) {
console.log("重连")
})
}
附上H5和手机端订阅后的效果,需要两个demo的可以留言邮箱
有时没看到消息的话 可去 https://gitee.com/lianzhichao/mqtt-serverandclient/tree/master/rar 下载
本文借鉴猫猫猫猫的mqtt-demo,因为在猫猫发布的篇中参与评论后,许多小伙伴联系我,想要从0开始搭建,使用mqtt,所以写了这篇文章,如果有大佬发现错误或有侵权之处,联系侵删,多有不足之处请原谅,觉得不错麻烦给个赞哦,谢谢各位
一:本地node搭建MQTT服务器
1 创建文件夹,在文件夹中添加依赖包
mqtt:npm install mqtt --save
mosca:npm install mosca --save
2 创建mqtt.js文件,并添加代码 (mtqq 服务端)
var mosca = require('mosca'); //构建服务器
// 此处配置mqtt的http客户端,尤为重要,http.port则为你HTTP访问端口,可以在网页上输入127.0.0.1:8888(端口),能请求成功则配置成功
var MqttServer = new mosca.Server({
port: 8083,
http: {
port: 8888,
bundle: true,
static: './'
}
});
//监听链接
MqttServer.on("clientConnected", function(client) {
console.log("client connected", client.id);
});
//监听mqtt的主题消息
MqttServer.on("published", function(packet, client) { //当客户端有连接的时候,发布主题消息
var topic = packet.topic;
console.log(packet);
switch (topic) {
case 'test':
console.log("message-publish", packet.payload.toString());
//mqtt转发主题消息
MqttServer.publish({
topic: 'other',
payload: '这是服务端发过来的消息!'
});
break;
}
});
MqttServer.on('ready', function() {
console.log("mqtt is running....");
});
3 创建publish文件,并添加代码 (mqtt 发布者)
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://127.0.0.1:8083');//连接到服务端
var num = 1;
var qtt = {};//定义消息(可以为字符串,对象等)
setInterval(function() {
qtt.title = 'publish';
qtt.text = '这是第'+num+'条测试消息';
client.publish('test',JSON.stringify(qtt),{qos:1,retain:true});//hello mqtt +
num++
console.log("publish 发布了一条内容为text的消息")
},2000);
4 创建subclient文件,并添加代码 (mqtt 订阅者)
// 接收消息的客户端;
var mqtt = require('mqtt');
let options = {
clientId:"test-id",
connectTimeout: 600000,
clean: true
}
var client2 = mqtt.connect("mqtt://127.0.0.1:8083",options);
console.log(client2)
//订阅主题为test的消息
client2.subscribe('test',{qos:1},function(err){
if(!err) {
console.log('订阅主题成功')
}else{
console.log(err)
}
});
client2.on('message',function(top,message) {
console.log(message.toString());
});
5 在当前文件夹下打开三个命令窗口,依次运行
node mqtt.js
node publish.js
node subclient.js
ps:遇到 schema 报错需注释掉 /node_modules/jsonschema/lib/validator.js 中的如下代码
if((typeof schema !== 'boolean' && typeof schema !== 'object') || schema === null){
throw new SchemaError('Expected `schema` to be an object or boolean');
}
运行后的效果截图
至此,本地成功搭建mqtt服务端
二:在uniapp中使用mqtt,在H5和app端实现订阅,接收消息
1 创建一个uniapp 默认项目,并引入node依赖
npm install mqtt@3.0.0
2 在组件中发起订阅,订阅方法如下
connect() {
var self = this
var subscribe = "test"
var mqtt = require('mqtt/dist/mqtt.js')
// #ifdef H5
let options = {
clientId:"H5_test",
connectTimeout: 600000,
clean: true
}
// 此处的端口为mqtt.js中的http端口,否则H5和手机连接不上mqtt服务器
var client = mqtt.connect('ws://127.0.0.1:8888/mqtt',options)
// #endif
// #ifdef MP-WEIXIN||APP-PLUS
let options = {
clientId:"APP_test",
connectTimeout: 600000,
clean: true
}
// 此处需要改成你的主机ip,并保证测试手机跟你的电脑处于同一个局域网
var client = mqtt.connect('wx://xxx.xxx.x.xxx:8888/mqtt',options)
// #endif
client.on('connect', function(res) {
uni.showToast({
title:"连接成功",
duration:2000,
icon:"none"
})
client.subscribe(subscribe, function(err) {
if (!err) {
uni.showToast({
title:"订阅成功",
duration:2000,
icon:"none"
})
}
})
}).on('message', function(topic, message) {
console.log(JSON.parse(message.toString()))
}).on('reconnect', function(topic, message) {
console.log("重连")
})
}
附上H5和手机端订阅后的效果,需要两个demo的可以留言邮箱
有时没看到消息的话 可去 https://gitee.com/lianzhichao/mqtt-serverandclient/tree/master/rar 下载
本文借鉴猫猫猫猫的mqtt-demo,因为在猫猫发布的篇中参与评论后,许多小伙伴联系我,想要从0开始搭建,使用mqtt,所以写了这篇文章,如果有大佬发现错误或有侵权之处,联系侵删,多有不足之处请原谅,觉得不错麻烦给个赞哦,谢谢各位
收起阅读 »【分享】最近在研究m3u8,给大家贡献一个测试链接
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni4934e7b/c4d93960-5643-11eb-a16f-5b3e54966275.m3u8
http://static-173a203a-51e7-4549-bf4d-d280b57bd4ee.bspapp.com/m3u8.html
目前的经验是:
自己开发的网页播放需要video.js
uni-app开发的H5无法播放
uni-app安卓和iOS都可以播放
大家在开发m3u8的播放中有什么心得,欢迎分享出来
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni4934e7b/c4d93960-5643-11eb-a16f-5b3e54966275.m3u8
http://static-173a203a-51e7-4549-bf4d-d280b57bd4ee.bspapp.com/m3u8.html
目前的经验是:
自己开发的网页播放需要video.js
uni-app开发的H5无法播放
uni-app安卓和iOS都可以播放
大家在开发m3u8的播放中有什么心得,欢迎分享出来
收起阅读 »Android uni-app实现音视频通话
前言
> 这篇讲解一下,把anyRTC的RTC(音视频通讯)封装uni-app 实现音视频通话。
不了解anyRTC的小伙伴,可以点击下面链接:
开发者官网
1.效果图
先上图,后讲解!
1.1 首页
1.2 主播界面
1.3 游客界面
2.GitHub地址
uni-app demo: 点击下载
3.demo下载
下载地址:点击下载
扫码下载:
4.代码
4.1 集成插件
更多详细代码请点击链接进行查看:https://blog.csdn.net/anyRTC/article/details/111604922
5.总结
基本重要的接口,在这里就基本上介绍完啦,如果大家还有什么疑问,可以在评论区留言!
前言
> 这篇讲解一下,把anyRTC的RTC(音视频通讯)封装uni-app 实现音视频通话。
不了解anyRTC的小伙伴,可以点击下面链接:
开发者官网
1.效果图
先上图,后讲解!
1.1 首页
1.2 主播界面
1.3 游客界面
2.GitHub地址
uni-app demo: 点击下载
3.demo下载
下载地址:点击下载
扫码下载:
4.代码
4.1 集成插件
更多详细代码请点击链接进行查看:https://blog.csdn.net/anyRTC/article/details/111604922
5.总结
基本重要的接口,在这里就基本上介绍完啦,如果大家还有什么疑问,可以在评论区留言!
收起阅读 »运行到小程序模拟机->微信开发者工具,见到微信IDE启动了但不进入项目的原因之一,你不是该小程序的开发者
运行到小程序模拟机->微信开发者工具,见到微信IDE启动了但不进入项目的原因之一,你不是该小程序的开发者
运行到小程序模拟机->微信开发者工具,见到微信IDE启动了但不进入项目的原因之一,你不是该小程序的开发者
公告:腾讯云套餐调整周知
【一】uniCloud腾讯云包月套餐将于2021年1月21日后新增【免费版】和【特惠基础版1】套餐,原【基础版1】的套餐将不再开放购买。若您已经开通【基础版1】包年包月套餐,仍可继续使用该服务空间。如若对该服务空间进行升配,且到期时账号下无免费服务空间,则会为您降配至新的【免费版】。
【二】自2021年3月12日后,在uniCloud腾讯云按量计费环境内,如果当日有资源使用,且产生的计费金额不足0.01元,将补齐按照0.01元收取。
详见:https://uniapp.dcloud.net.cn/uniCloud/price?id=%e8%85%be%e8%ae%af%e4%ba%91
【一】uniCloud腾讯云包月套餐将于2021年1月21日后新增【免费版】和【特惠基础版1】套餐,原【基础版1】的套餐将不再开放购买。若您已经开通【基础版1】包年包月套餐,仍可继续使用该服务空间。如若对该服务空间进行升配,且到期时账号下无免费服务空间,则会为您降配至新的【免费版】。
【二】自2021年3月12日后,在uniCloud腾讯云按量计费环境内,如果当日有资源使用,且产生的计费金额不足0.01元,将补齐按照0.01元收取。
详见:https://uniapp.dcloud.net.cn/uniCloud/price?id=%e8%85%be%e8%ae%af%e4%ba%91
收起阅读 »无法监听下载进度文件总大小的临时解决办法[希望官方能修复这个BUG]
反正也不知道从哪个版本开始就发现更新wgt包时无法获取下载文件总大小了。
大概从3.0版或2.9几版开始就不能用了,刚开始以为BUG会修复,
结果等到了3.0.7都没有修复这个BUG。
以前是直接下载文件如:
http://xxxx.com/sss.wgt
用下载API就可以获取文件总大小,后来出现BUG后,这个就不行了。
现在可以通过主动输出文件来获取,但只适合一个两个的文件,如果直接要下载图片,这样做是行不通的。
临时解决如下:
PHP后端,输出要更新的wgt包:
final function appdown(){
header('Content-Type: application/octet-stream');
$files=$_SERVER['DOCUMENT_ROOT'].'/appdown/app.wgt';
$filesize = filesize($files); //获得文件大小
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Content-Transfer-Encoding: binary');
header('Content-Encoding: none');
header('Content-type: application/force-download');
header('Content-length: '.$filesize);//此处是重点
header('Content-Disposition: attachment; filename="jingliang.wgt"');
readfile("$files");
}
H5+用plus.downloader.createDownload来监听下载进度
uniapp有bug,无法监听下载进度事件,也可用plus.downloader.createDownload来操作下载
另外还有个BUG就是,plus.downloader.createDownload下载监听时的进度与实际下载进度不相符,例如实际下载10秒就完成了,但是监听进度要20秒才会完成反应太慢了,这在之前版本上好像是没有这种太明显的慢的现象的【刚开始怀疑这个可能是进度条30毫秒才走1步造成的,后来发现状态3的监听基本是跟不上下载的速度的,这在以前是没有这个情况的】。
但是尽管这种办法能获取文件大小,也是没有用的,因为只要它下载完成就会调起自动安装,此时进度条还需要N秒才能走完,下载进度监听根本不到100%。。。
还是等官方修复这个BUG吧,之前都可以直接获取下载文件的大小。
反正也不知道从哪个版本开始就发现更新wgt包时无法获取下载文件总大小了。
大概从3.0版或2.9几版开始就不能用了,刚开始以为BUG会修复,
结果等到了3.0.7都没有修复这个BUG。
以前是直接下载文件如:
http://xxxx.com/sss.wgt
用下载API就可以获取文件总大小,后来出现BUG后,这个就不行了。
现在可以通过主动输出文件来获取,但只适合一个两个的文件,如果直接要下载图片,这样做是行不通的。
临时解决如下:
PHP后端,输出要更新的wgt包:
final function appdown(){
header('Content-Type: application/octet-stream');
$files=$_SERVER['DOCUMENT_ROOT'].'/appdown/app.wgt';
$filesize = filesize($files); //获得文件大小
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Content-Transfer-Encoding: binary');
header('Content-Encoding: none');
header('Content-type: application/force-download');
header('Content-length: '.$filesize);//此处是重点
header('Content-Disposition: attachment; filename="jingliang.wgt"');
readfile("$files");
}
H5+用plus.downloader.createDownload来监听下载进度
uniapp有bug,无法监听下载进度事件,也可用plus.downloader.createDownload来操作下载
另外还有个BUG就是,plus.downloader.createDownload下载监听时的进度与实际下载进度不相符,例如实际下载10秒就完成了,但是监听进度要20秒才会完成反应太慢了,这在之前版本上好像是没有这种太明显的慢的现象的【刚开始怀疑这个可能是进度条30毫秒才走1步造成的,后来发现状态3的监听基本是跟不上下载的速度的,这在以前是没有这个情况的】。
但是尽管这种办法能获取文件大小,也是没有用的,因为只要它下载完成就会调起自动安装,此时进度条还需要N秒才能走完,下载进度监听根本不到100%。。。
还是等官方修复这个BUG吧,之前都可以直接获取下载文件的大小。
收起阅读 »【建议】uni-app创建新项目自动增加.gitignore文件
把这段放进去:
/unpackage/
.DS_Store
*/.DS_Store
不然偶尔忘记,直接把/unpackage/里一堆没用的东西也同步
把这段放进去:
/unpackage/
.DS_Store
*/.DS_Store
不然偶尔忘记,直接把/unpackage/里一堆没用的东西也同步
2021年全新UI界面1:1仿皮皮虾APP段子 - 影视+直播+小视频+赚钱+采集
官方网站:http://www.suxiangw.com/duanzi.html
购买QQ:1424445608
电话:15622289461
演示APP下载:http://www.nihaopi.com/
演示后台网址:http://www.nihaopi.com/admin.php
速翔段子APP系统源码自主研发的社交软件产品,UI界面1:1仿皮皮虾APP,支持视频、图文、文字、影视、直播、小视频等,有点赞、送神评、收藏、插眼、保存、分享、点踩、评论等等众多功能等您体验!
官方网站:http://www.suxiangw.com/duanzi.html
购买QQ:1424445608
电话:15622289461
演示APP下载:http://www.nihaopi.com/
演示后台网址:http://www.nihaopi.com/admin.php
速翔段子APP系统源码自主研发的社交软件产品,UI界面1:1仿皮皮虾APP,支持视频、图文、文字、影视、直播、小视频等,有点赞、送神评、收藏、插眼、保存、分享、点踩、评论等等众多功能等您体验!
收起阅读 »链家程序员怒删公司 9TB 数据,被判 7 年!
1月6日,北京市第一中级人民法院公布前链家员工破坏计算机信息系统罪一案的刑事裁定书,被告人因不满工作调整,删公司9TB数据。
北京市海淀区人民法院判决认定:
2018年6月4日14时许,被告人韩冰在位于本市海淀区上地三街福道大厦三层的链家网(北京)科技有限公司(以下简称链家公司),利用其担任链家公司数据库管理员并掌握公司财务系统root权限的便利,登录公司财务系统服务器删除了财务数据及相关应用程序,致使公司财务系统无法登录。链家公司为恢复数据及重新构建财务系统共计花费人民币18万元。2018年7月31日,被告人韩冰被公安机关抓获归案。
北京市海淀区人民法院认为,被告人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,后果特别严重,其行为已构成破坏计算机信息系统罪,依法应予惩处。依照《中华人民共和国刑法》第二百八十六条第一款、第二款之规定,判决:被告人韩冰犯破坏计算机信息系统罪,判处有期徒刑七年。
以下为刑事裁定书原文:
========================================
北京市第一中级人民法院
刑 事 裁 定 书
(2020)京01刑终490号
原公诉机关北京市海淀区人民检察院。
上诉人(原审被告人)韩冰,男,40岁(1980年11月25日出生),汉族,出生地北京市,大学文化,案发前系链家网(北京)科技有限公司数据库管理员,住北京市朝阳区。因涉嫌犯破坏计算机信息系统罪,于2018年7月31日被羁押,同年8月15日被逮捕。现羁押于北京市海淀区看守所。
指定辩护人王璐,北京市邦盛律师事务所律师。
指定辩护人王禹婷,北京市邦盛律师事务所律师。
北京市海淀区人民法院审理北京市海淀区人民检察院指控被告人韩冰犯破坏计算机信息系统罪一案,于2020年11月4日作出(2019)京0108刑初398号刑事判决。原审被告人韩冰不服,提出上诉。本院依法组成合议庭,经过阅卷,讯问上诉人,听取辩护人的意见,核实有关证据,认为本案的事实清楚,决定不开庭审理。现已审理终结。
北京市海淀区人民法院判决认定:
2018年6月4日14时许,被告人韩冰在位于本市海淀区上地三街福道大厦三层的链家网(北京)科技有限公司(以下简称链家公司),利用其担任链家公司数据库管理员并掌握公司财务系统root权限的便利,登录公司财务系统服务器删除了财务数据及相关应用程序,致使公司财务系统无法登录。链家公司为恢复数据及重新构建财务系统共计花费人民币18万元。2018年7月31日,被告人韩冰被公安机关抓获归案。
上述事实,有经一审庭审举证、质证并予以确认的被告人韩冰的供述,证人周某等人的证言,司法鉴定意见书,技术服务合同,银行电子回单,发票,情况说明,MAC地址行为日志,链家公司检索主机名详单,劳动合同,电子邮件,会议纪要,微信群聊天记录,员工信息,扣押笔录,受案登记表,到案经过等证据证实。
北京市海淀区人民法院认为,被告人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,后果特别严重,其行为已构成破坏计算机信息系统罪,依法应予惩处。依照《中华人民共和国刑法》第二百八十六条第一款、第二款之规定,判决:被告人韩冰犯破坏计算机信息系统罪,判处有期徒刑七年。
上诉人韩冰的主要上诉理由为:监控录像等证据证明其没有实施犯罪。其不是可以进入被害单位内网且有Yggdrasil主机名的唯一用户。证明其电脑中存在sherd及rm命令的证据之间存在矛盾。在其电脑中检索到的关于Mac地址EA:36:33:43:78:88的记录与其无关,有可能是该MAC地址的设备访问其电脑留下的。被害单位刻意制造维修费用,且没有证据证明被害单位损失,故其不认可被害人的损失数额。
上诉人韩冰的辩护人的主要辩护意见为:本案事实不清、证据不足,不能排除合理怀疑,应疑罪从无。电子数据鉴定意见的起始基准时间晚于案发一个多月,不能确定在此期间电子数据有无修改。现有证据不能证实韩冰实施删除行为的准确时间以及韩冰实施了使用命令攻击删除行为。不能排除系有漏洞和程序问题导致外介质因素入侵。是否造成系统全部瘫痪的事实不清、证据不足,删除数据大小不明确。18万元损失的认定证据不足,没有第三方机构评估、鉴定等证据。韩冰具有主观恶性不大,未造成严重社会影响等从轻情节。
二审审理期间,上诉人韩冰及其辩护人均未向法庭提交新的证据。
经二审审理查明的事实与一审相同。一审判决所据证据,经审查,证据的收集及质证符合法定程序,能够证明认定的事实,本院予以确认。
对于上诉人韩冰及其辩护人所提本案存在多重合理怀疑,应当认定韩冰无罪的上诉理由及辩护意见,经查:国家信息中心电子数据司法鉴定中心司法鉴定意见书证明,2018年6月4日14时至15时期间,IP地址为10.33.35.160的终端用户远程以root身份登录链家公司服务器并通过执行rm、shred命令删除数据文件、擦除操作日志等,而该IP地址于6月4日14时17分被分配给MAC地址为EA-36-33-43-78-88、主机名为Yggdrasil的设备使用。该IP地址为链家公司福道大厦3楼交换机所覆盖网络区域,而韩冰具有root权限且于案发当日在上述IP地址的网络覆盖区域内上班。经司法鉴定确认,韩冰电脑的主机名为Yggdrasil,与登录服务器执行删除、擦除命令的电脑主机名一致;韩冰电脑的MAC地址虽不是EA-36-33-43-78-88,但其电脑中安装有用于更改MAC地址的软件WiFiSpoof,且在其电脑的相关文件中检索到多条与上述MAC地址相关的记录。综合案发后韩冰的表现,以及对具有类似权限人员所用电脑的鉴定结论等情况,能够确定韩冰实施了删除链家公司财务系统服务器程序数据的行为。上诉人韩冰及其辩护人所提的相关辩解及辩护意见,无事实及法律依据,本院不予采纳。
对于上诉人韩冰所提监控录像证明其没有实施犯罪的上诉理由,经查:视频服务器和涉案四台服务器均未与标准时间校准,无法判断监控时间与服务器时间的时间差,无法以视频时间和服务器时间排除韩冰作案的可能。故对韩冰的该项上诉理由,本院不予采纳。
对于上诉人韩冰及其辩护人所提认定被害单位损失的证据不足的上诉理由及辩护意见,经查:链家公司情况说明等证据证明,财务系统数据修复系专业性强、时效性高的技术类工作,链家公司在被删除系统后紧急聘请第三方公司进行财务数据恢复工作,不属于刻意制造费用。技术服务合同、服务报价单、银行电子回单、发票等证据证明,链家公司基于财务系统受损而支付修复费用18万元。一审据此认定被害单位损失,证据确实充分。故韩冰及其辩护人的相关意见,缺乏事实及法律依据,本院均不予采纳。
本院认为,上诉人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,其行为已构成破坏计算机信息系统罪,且后果特别严重,依法应予惩处。 一审法院根据韩冰犯罪的事实、犯罪的性质、情节及对于社会的危害程度所作出的判决,事实清楚,证据确实、充分,定罪及适用法律正确,量刑适当,审判程序合法,应予维持。据此,依照《中华人民共和国刑事诉讼法》第二百三十六条第一款第(一)项之规定,裁定如下:
驳回上诉,维持原判。
本裁定为终审裁定。
审 判 长 关 芳
审 判 员 鲍 艳
审 判 员 孙 燕
二〇二〇年十二月二十九日
法官助理 韩 峰
书 记 员 孟丹丹
========================================
此前,北京市海淀区人民法院在韩冰的一审刑事判决书中已指控被告人韩冰犯破坏信息系统罪,原审被告人韩冰不服,曾提出上诉。
参考链接:https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=ca312e28689b498a8ac1aca8009ac7fc
删库一时爽,但毁了自己的职业生涯,断送了自己的前程真心不值。
最后希望我们的程序员对于任何涉嫌违法的事件,都要保持一颗敬畏的心。
此文章转载自极客日报,如有不当联系删除。原文链接
1月6日,北京市第一中级人民法院公布前链家员工破坏计算机信息系统罪一案的刑事裁定书,被告人因不满工作调整,删公司9TB数据。
北京市海淀区人民法院判决认定:
2018年6月4日14时许,被告人韩冰在位于本市海淀区上地三街福道大厦三层的链家网(北京)科技有限公司(以下简称链家公司),利用其担任链家公司数据库管理员并掌握公司财务系统root权限的便利,登录公司财务系统服务器删除了财务数据及相关应用程序,致使公司财务系统无法登录。链家公司为恢复数据及重新构建财务系统共计花费人民币18万元。2018年7月31日,被告人韩冰被公安机关抓获归案。
北京市海淀区人民法院认为,被告人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,后果特别严重,其行为已构成破坏计算机信息系统罪,依法应予惩处。依照《中华人民共和国刑法》第二百八十六条第一款、第二款之规定,判决:被告人韩冰犯破坏计算机信息系统罪,判处有期徒刑七年。
以下为刑事裁定书原文:
========================================
北京市第一中级人民法院
刑 事 裁 定 书
(2020)京01刑终490号
原公诉机关北京市海淀区人民检察院。
上诉人(原审被告人)韩冰,男,40岁(1980年11月25日出生),汉族,出生地北京市,大学文化,案发前系链家网(北京)科技有限公司数据库管理员,住北京市朝阳区。因涉嫌犯破坏计算机信息系统罪,于2018年7月31日被羁押,同年8月15日被逮捕。现羁押于北京市海淀区看守所。
指定辩护人王璐,北京市邦盛律师事务所律师。
指定辩护人王禹婷,北京市邦盛律师事务所律师。
北京市海淀区人民法院审理北京市海淀区人民检察院指控被告人韩冰犯破坏计算机信息系统罪一案,于2020年11月4日作出(2019)京0108刑初398号刑事判决。原审被告人韩冰不服,提出上诉。本院依法组成合议庭,经过阅卷,讯问上诉人,听取辩护人的意见,核实有关证据,认为本案的事实清楚,决定不开庭审理。现已审理终结。
北京市海淀区人民法院判决认定:
2018年6月4日14时许,被告人韩冰在位于本市海淀区上地三街福道大厦三层的链家网(北京)科技有限公司(以下简称链家公司),利用其担任链家公司数据库管理员并掌握公司财务系统root权限的便利,登录公司财务系统服务器删除了财务数据及相关应用程序,致使公司财务系统无法登录。链家公司为恢复数据及重新构建财务系统共计花费人民币18万元。2018年7月31日,被告人韩冰被公安机关抓获归案。
上述事实,有经一审庭审举证、质证并予以确认的被告人韩冰的供述,证人周某等人的证言,司法鉴定意见书,技术服务合同,银行电子回单,发票,情况说明,MAC地址行为日志,链家公司检索主机名详单,劳动合同,电子邮件,会议纪要,微信群聊天记录,员工信息,扣押笔录,受案登记表,到案经过等证据证实。
北京市海淀区人民法院认为,被告人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,后果特别严重,其行为已构成破坏计算机信息系统罪,依法应予惩处。依照《中华人民共和国刑法》第二百八十六条第一款、第二款之规定,判决:被告人韩冰犯破坏计算机信息系统罪,判处有期徒刑七年。
上诉人韩冰的主要上诉理由为:监控录像等证据证明其没有实施犯罪。其不是可以进入被害单位内网且有Yggdrasil主机名的唯一用户。证明其电脑中存在sherd及rm命令的证据之间存在矛盾。在其电脑中检索到的关于Mac地址EA:36:33:43:78:88的记录与其无关,有可能是该MAC地址的设备访问其电脑留下的。被害单位刻意制造维修费用,且没有证据证明被害单位损失,故其不认可被害人的损失数额。
上诉人韩冰的辩护人的主要辩护意见为:本案事实不清、证据不足,不能排除合理怀疑,应疑罪从无。电子数据鉴定意见的起始基准时间晚于案发一个多月,不能确定在此期间电子数据有无修改。现有证据不能证实韩冰实施删除行为的准确时间以及韩冰实施了使用命令攻击删除行为。不能排除系有漏洞和程序问题导致外介质因素入侵。是否造成系统全部瘫痪的事实不清、证据不足,删除数据大小不明确。18万元损失的认定证据不足,没有第三方机构评估、鉴定等证据。韩冰具有主观恶性不大,未造成严重社会影响等从轻情节。
二审审理期间,上诉人韩冰及其辩护人均未向法庭提交新的证据。
经二审审理查明的事实与一审相同。一审判决所据证据,经审查,证据的收集及质证符合法定程序,能够证明认定的事实,本院予以确认。
对于上诉人韩冰及其辩护人所提本案存在多重合理怀疑,应当认定韩冰无罪的上诉理由及辩护意见,经查:国家信息中心电子数据司法鉴定中心司法鉴定意见书证明,2018年6月4日14时至15时期间,IP地址为10.33.35.160的终端用户远程以root身份登录链家公司服务器并通过执行rm、shred命令删除数据文件、擦除操作日志等,而该IP地址于6月4日14时17分被分配给MAC地址为EA-36-33-43-78-88、主机名为Yggdrasil的设备使用。该IP地址为链家公司福道大厦3楼交换机所覆盖网络区域,而韩冰具有root权限且于案发当日在上述IP地址的网络覆盖区域内上班。经司法鉴定确认,韩冰电脑的主机名为Yggdrasil,与登录服务器执行删除、擦除命令的电脑主机名一致;韩冰电脑的MAC地址虽不是EA-36-33-43-78-88,但其电脑中安装有用于更改MAC地址的软件WiFiSpoof,且在其电脑的相关文件中检索到多条与上述MAC地址相关的记录。综合案发后韩冰的表现,以及对具有类似权限人员所用电脑的鉴定结论等情况,能够确定韩冰实施了删除链家公司财务系统服务器程序数据的行为。上诉人韩冰及其辩护人所提的相关辩解及辩护意见,无事实及法律依据,本院不予采纳。
对于上诉人韩冰所提监控录像证明其没有实施犯罪的上诉理由,经查:视频服务器和涉案四台服务器均未与标准时间校准,无法判断监控时间与服务器时间的时间差,无法以视频时间和服务器时间排除韩冰作案的可能。故对韩冰的该项上诉理由,本院不予采纳。
对于上诉人韩冰及其辩护人所提认定被害单位损失的证据不足的上诉理由及辩护意见,经查:链家公司情况说明等证据证明,财务系统数据修复系专业性强、时效性高的技术类工作,链家公司在被删除系统后紧急聘请第三方公司进行财务数据恢复工作,不属于刻意制造费用。技术服务合同、服务报价单、银行电子回单、发票等证据证明,链家公司基于财务系统受损而支付修复费用18万元。一审据此认定被害单位损失,证据确实充分。故韩冰及其辩护人的相关意见,缺乏事实及法律依据,本院均不予采纳。
本院认为,上诉人韩冰违反国家规定,对计算机信息系统中存储的数据和应用程序进行删除,造成计算机信息系统不能正常运行,其行为已构成破坏计算机信息系统罪,且后果特别严重,依法应予惩处。 一审法院根据韩冰犯罪的事实、犯罪的性质、情节及对于社会的危害程度所作出的判决,事实清楚,证据确实、充分,定罪及适用法律正确,量刑适当,审判程序合法,应予维持。据此,依照《中华人民共和国刑事诉讼法》第二百三十六条第一款第(一)项之规定,裁定如下:
驳回上诉,维持原判。
本裁定为终审裁定。
审 判 长 关 芳
审 判 员 鲍 艳
审 判 员 孙 燕
二〇二〇年十二月二十九日
法官助理 韩 峰
书 记 员 孟丹丹
========================================
此前,北京市海淀区人民法院在韩冰的一审刑事判决书中已指控被告人韩冰犯破坏信息系统罪,原审被告人韩冰不服,曾提出上诉。
参考链接:https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=ca312e28689b498a8ac1aca8009ac7fc
删库一时爽,但毁了自己的职业生涯,断送了自己的前程真心不值。
最后希望我们的程序员对于任何涉嫌违法的事件,都要保持一颗敬畏的心。
此文章转载自极客日报,如有不当联系删除。原文链接
收起阅读 »


















