V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cnuser002  ›  全部回复第 2 页 / 共 2 页
回复总数  39
1  2  
2022-12-09 16:01:57 +08:00
回复了 unt 创建的主题 程序员 MQTT 协议服务端选型
Eclipse 的 MQTT Client 实现还可以,Broker 端好像性能不太好。
建议直接就 emqx 。

至于你说的 mqtt 和 16 进制字节流的区别。我感觉你误解了 MQTT 。
MQTT 本身就是一种建立在 TCP 上的字节协议。
它帮助你建立并维护 Client - Broker 之间的连接, 使用基于 Topic 的 推送 /订阅机制,间接实现 Client 与 另一个的 Client 的数据传输。

比如你的场景,用 MQTT 来实现。就是服务器订阅某个 Topic ,20000 个设备往这个 Topic 上推送,利用 Broker 来实现服务器监听 20000 个设备上报的数据。

如果你不用 MQTT ,那就要换个方式去接。

比如你可以开一个 HTTP Server ,让 20000 个设备发送 Post 请求来上报数据。

或者开一个 TCP Socket Server ,让 20000 个设备以 Tcp Client 的形式连到你的 Server 上,然后用自己设计个协议去接。

你说的可能就是这种自己编协议的吧。
2022-12-07 10:04:48 +08:00
回复了 Features 创建的主题 程序员 学习技术的遇到困境
我不是专业移动开发,但是 Android 、桌面、Web ,也都做过一些东西。
也聊聊这个话题。

首先遗忘我觉得不是问题,遗忘本来就是大脑帮我们减负的机制,一个东西你一段时间用不到,自然印象就淡了。等用到了,反正你有印象,再复习也快啊。比如正则表达式,你不是天天写规则,那记不住语法非常正常,偶尔遇到了再去搜搜咋用,又有什么问题呢?

就你要做的到,学过的东西,明白它的大致原理,可以用来干嘛,遇到需求时,能想到这么一茬。我感觉就可以了。


然后说回移动开发,现在是百花齐放

光入口就有移动 Web 端、移动端、小程序端。

跨平台开发,就有 Flutter 、ReactNative 、Uniapp 等不同途径。

哪怕做原生开发,也有 Swift 、Kotlin 等新语言带来不同途径。

每种途径都有自己的开发逻辑,你如果每种都想搞成熟手,这个是有些不切实际的,而且对你可能也没有必要。

你接的活儿,无论用什么途径开发,做的事情可能都是接近的。

所以我感觉你最好是先定一个主技术栈,在这个主栈上把你的东西做熟。

其它的开发方向,你可以了解,尝试一些小 Demo ,了解它的开发步骤。等真的需要在它们上面开发的时候,把主栈上的经验套过来就成了。
2022-11-23 14:32:13 +08:00
回复了 RedisMasterNode 创建的主题 NAS 请教一下备份+下载的 NAS 方案
随便找个机子开个 SMB 共享完事了,你这个也不涉及自动同步什么的,

就做成一个网络访问的存储空间,你塞东西进去就行了。
2022-11-16 20:33:35 +08:00
回复了 diandian666 创建的主题 程序员 十年程序员难倒了一个算法上面,真的老了
额,楼主,我有个思路,不知道能不能帮到你啊。

我观察了一下你这个数据的构成。有很多形如 0.28,0.56 这种小数字。这些小数字拉高了遍历的轮次,导致你算不出来。

可不可以把这一大坨小数字,合成几个大数字,再参与你的遍历。出了结果后,再把它分解回小数字呢?

以你主题中的例子,
有 30 个 0.28 , 要匹配 3 个数。
一个数字中的 0.28 的数量,可以表示为 2n 或者 2n+1 。 这里 2n 个 0.28 ,可以转成 n 个 0.56 。
根据鸽笼原理,3 个数,我们留 3 个 0.28 参与最后的匹配,剩下的 27 个 0.28 ,都换成 0.56 。

同样的,2n 个 0.56 可以换成 n 个 1.12...

这样参与最终匹配的数字降下来,你这个问题就能找出解。

找出解以后,你再还原回去。
2022-11-09 17:08:36 +08:00
回复了 DIO 创建的主题 NAS mini server+轻量 NAS 矿渣方案纠结
我建议用第一个方案,起码有个外壳。方案 2 ,我用的树莓派 + 硬盘盒,搁那裸奔,看着就不专业。当然用其实也能用。
2022-10-25 10:13:54 +08:00
回复了 Elizen 创建的主题 NAS 问一下,现在家里配 NAS 选什么好一点?
我觉得你可以试试自己建,玩一玩。

讲白了 NAS 就是找一台低功耗的电脑,一头连网线,一头连硬盘,上面跑各种各样的服务,让其它计算机能使用网络去访问硬盘,也就是所谓的“网络附加存储”。

群晖这些系统做的事情,是把各种常用或者不常用的服务集成在他的 NAS 系统里面,一条龙服务,省得淘神费力。

而当你的需求已经需要通过 Docker 容器自己装服务去满足,那其它功能你也可以自己装服务去实现,不需要用群晖那套东西。
2022-10-12 18:03:00 +08:00
回复了 qq493658160 创建的主题 程序员 出海业务接入国内支付宝场景的求助
用户在你们网站,选择支付宝支付,出来的付款码,是国内支付宝生成的,最后收钱也是国内的那个付款码关联的账户。是这个意思么?

这种方式我只见到机场充值这种灰色地带用,正规企业没必要吧。
听你意思,感觉是想达到书同文、车同轨这种效果啊。
那好像只能写一个取名清单,类似代码规范,让系统开发者遵守。

如果目的是不同模块互相交流方便。那还是要定一个规矩。
然后要么上面写个统一的模块,让下面系统引用
要么底下每个系统按规矩去写转换函数。
2022-08-01 11:20:18 +08:00
回复了 unt 创建的主题 程序员 从代码实例角度来分析 MVC 和 MVVM 框架
说到例子,我用过 Andorid Studio 开发安卓应用,那个挺符合 MVC 的。
它的每个页面,由表里两部分组成。表面是视图 View ,作用是用 XML 定义页面中控件的位置、大小、样式。
里面是 Activity ,这里面声明了页面中用到的控件的 Java 类实例。
类实例和 View 中的控件,通过资源 id 关联到一起。

然后它是怎么更新视图呢?是在 Activity 里面写触发。

比如点击按钮,更新文本框。是在 Activity 中编写 onBtnClick 事件,这个事件中,调用 TextView 的类实例,改里面的 text 值,然后 TextView 类实例会触发更新,反馈到视图上。


我曾经试过用 WPF 开发桌面应用,那是初次体验 MVVM 。感觉区别就是,像上面这个需求,onBtnClick 中,变成直接改 text ,由于 text 跟 TextView 控件有过绑定关系,所以 text 一改,TextView 显示的东西会改。并不需要我直接调用 TextView 中的 Function 或者 Prop 。
首先从产品的思路来看,各种“智能”家居设备,要是没有后面的那坨云,都是玩不起来的。哪怕最简单的温度传感器,你在外面想要看到家里的温度,那肯定是由服务器在云上帮你记录。这样也就导致市售的产品,基本上都会自动连接到厂家的云上,然后由云上的应用提供服务。 这个过程虽然用到了你家的网络,但是对你是透明的。

你要接入家里自己的系统,其实就是要把这个厂家的云,换成你自己的服务器,
1. 必须搞到通信协议,
2. 要能修改设备的通信配置。
这个就要看原厂家的开放程度了。基本上是不会让你实现图上所谓的完全本地化的。

如果你确实很想要那种,那可以买一些物联网通信模块,改造传统的设备。由这类模块充当桥梁,但这样
1. 你要知道传统设备怎么和模块通信,
2. 模块怎么和自己的服务器通信。

还有一种,通过网关上云的设备。 比如 zigbee 设备,是先接入 zigbee 网关,然后由 zigbee 网关跟云通信。把 zigbee 网关,换成我们自己的 zigbee 网关,就可以接入到本地了。
2022-03-07 17:47:30 +08:00
回复了 x97bgt 创建的主题 程序员 关于序列化和编码这两个概念的疑惑
我的理解

编码 = 一切 -> 二进制 ,

序列化目的 = 对象 -> 二进制 -> 对象

所以序列化 用 二进制编码。

但后来 灵活 > 效率

使用 JSON / XML 这种带自描述的可读文本协议 , 可读性好,扩展性强。

所以具体实现变成

对象 -> 文本 ,文本 -> 对象。


在传和存的时候,直接按字符串走的字符编码 文本 -> 二进制 -> 文本。


protobuf 则又变回去了,

因为 RPC 通信里, 文本 -> 对象 显得效率低。

还是直接转二进制效率高,protobuf 实际上就是把这步做了。

对象 -> protobuf 二进制流 -> 对象
你的设备上报是 5 秒一个,但是你实际是每个 30 分钟存一个值到数据库。

那你的主要工作,其实就是写一个比较程序,将每台设备每次上报的数据,跟 30 分钟段内最高的温度,做一个比较就行了。

到点把最高值往数据库里写就完事了。

那我感觉,你也没必要搞 Redis ,用你熟悉的语言把这个变换的流程,写一下就 Ok 了。
2020-07-24 11:05:01 +08:00
回复了 gransh 创建的主题 JavaScript 前端的表单内容校验,有哪几种处理办法?
这事听起来不难啊。
你既然已经能判断每个项的对错了,用一个变量控制提交按钮的有效性不就结了吗。
2020-06-19 13:21:55 +08:00
回复了 InfiPower 创建的主题 酷工作 日本 InfiPower 直招软工
楼主你这招聘跨了两条科技树啊,这样很难找到合适的人的。

OTA,驱动,固件,透传这一块是硬件系的,是想找个人帮你们搞一个固件在线升级系统,方便底下硬件远程更新,应该是这个意思吧?这个方向通常只有 EE 跟物联网的搞。

而另一个方向则是做网络应用的开发。这条线上你前后端都要,那又是一人分饰两角。
2020-04-30 15:02:51 +08:00
回复了 651794071 创建的主题 问与答 想给女朋友做个网站,遇到技术问题真诚求建议!
你朋友生日还有多久?三周开外我觉得还是很有希望的,毕竟你有 HTML JS CSS 基础,基本功能实现很容易。一些难的效果你用 Google 找类似的改就行了。

一条一条说吧,首先你要用 Github 的静态 web 页面托管,这个是完全可以的。它指的静态不是说你的页面不能跳转不能有动的成分,而是指你的文件是提前写死上传上去的,满足这个条件,你网站写的多骚都没关系。
比如下面这个,
https://yui540.graphics/
这个就是一个纯静态网站,里面的效果应该够你用了吧,这用 React 做的。

言归正传,你这个需求,包涵三个方面,
1. 模拟登陆。
2. 页面跳转。
3. 要有动态效果

第一个需求很简单就能实现,说白了你不用真的登录,在 script 里写好密码跟记录登录次数的变量,然后给你的登录按钮那里套上一个点击事件,在里面加逻辑就可以。

第二个需求页面跳转,我不清楚你到底要什么,简单的页面跳转很容易,但是如果你是要在同页面里换内容,这个就不止是跳转的问题,会麻烦不少。但也有可能你根本就不需要跳转页面,比如你可以把登录框放在页面的前面,盖住内容部分,登录完把登录框隐藏了,内容自然就出来了。

第三个是对你挑战最大的。你要让页面有动态效果,得将 CSS 跟 Javascript 结合起来。CSS3 里有很多很多效果,现在也加入了动画相关内容,而 JS 作为脚本可以设计出一些动态效果,有些比较难的效果单靠 CSS 撑不起来,得用 JS 串联起来。
不过讲道理这些都属于艺术创作的部分了,主要是抄起来难。

最后别人送什么礼物,轮不到我们指手画脚吧。
2020-03-19 09:47:23 +08:00
回复了 ompad 创建的主题 分享创造 打造国内最纯净的写作软件-独旅写作
e6a6c837-c5ab-39bc-b3f6-627d2ff5b9fc
上个帖子你说用 echart 做,放弃了吗?
我看 echart 上有差不多的样例啊,比如这个 https://www.echartsjs.com/examples/zh/editor.html?c=candlestick-large
20w 点,可以移轴,可以拉伸,也不卡,就是触发选取修改事件得自己写。
反正你都准备前后端分离了,客户端功能就是从服务器那里一次性拉取 10W 数据点,显示成一个表格,做个交互,最后把修改后的数据发回去就行了。用什么 GUI 框架无所谓的吧。
2020-01-06 19:46:30 +08:00
回复了 phpxiaowangzi 创建的主题 程序员 说句实话,我后端现在已经看不懂前端了,太难了
还好吧,现在前端就是拿浏览器为载体,拼一个客户端出来,跟后台交换数据,来实现功能,跟安卓 IOS 桌面开发区别很小了。其中 Vue / React 是两个大框架,用来造控件,提供回调接口,显示数据,配套的 Vuex,Redux 用来做数据载体,Router 提供在浏览器内换页面的方法。 至于 Webpack 这个东西,前端要引入的东西来源杂,配置多,所以用这个统一管理起来。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2226 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 48ms · UTC 15:36 · PVG 23:36 · LAX 08:36 · JFK 11:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.