CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)

本文详细介绍了如何在Ubuntu/Linux环境下安装并使用Node-CoAP,包括安装NodeJS、安装Node-CoAP、创建简单示例代码及进行客户端、浏览器和命令行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 0 前言
    本文说明如果安装和使用node-coap。CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性。node-coap使用nodejs实现了coap的客户端和服务器端。
    【测试环境】——ubuntu/Linux
    【相关博文】
    【 树莓派学习笔记——webiopi安装与入门】webiopi中集成了CoAP Server,可以方便地通过CoAP协议控制树莓派GPIO。

1 nodejs安装
【1】下载nodejs源代码包
【2】Linux安装三部曲,依次输入以下指令:
 ./configure
make
sudo make install
【3】必要的检查
node --version

2 安装和使用node-coap
【1】新建一个工作目录
mkdir hello-coap
【2】进入该目录安装node-coap
npm install node-coap --save
    请注意windows中安装node-coap稍有差异,详见—— CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)

3 简单的例子
3.1 服务器代码
const coap    = require('coap') 
    , server  = coap.createServer()

server.on('request', function(req, res) {
      res.end('Hello ' + req.url.split('/')[1] + '\n')
})

server.listen(function() {
      console.log('server started')
})
    【说明】
    服务器的工程也非常简单,res.end('Hello ' + req.url.split('/')[1] + '\n')从该句程序可以看出,如果请求URL为<Server IP>/<Name>,那么服务器返回Hello <Name>
    【后台运行】
    node server.js &
    【若需要关闭服务器进程】
    # 查看 server.js的PID
    ps aux | grep server.js
    # 杀死进程
    kill <pid>

3.2 客户端测试
const coap  = require('coap') 
    , req   = coap.request('coap://localhost/xukai871105')

req.on('response', function(res) {
  res.pipe(process.stdout)
})

req.end()
    【说明】
    请求的URL为coap://localhost/xukai871105,请注意此处为URL开头为coap而不是http
    【运行】
    node client.js
    【返回】
    Hello xukai871105

3.3 浏览器测试
    浏览器测试更直观一些,需要在FireFox浏览器中安装CoAP插件。
    【1】在浏览器地址栏输入coap://localhost/xukai871105
    【2】点击工具栏中的GET
    【3】payload一栏中输出Hello xukai871105

图1 浏览器测试
    
3.4 命令测试
    除了使用浏览器和客户端工具测试之外,还可以同时coap命令行测试,这种基于nodeJS的命令行工具和curl工具类似。在使用coap命令行工具之前,需要正确安装coap-cli。
    【安装】
    (sudo) npm install coap-cli -g
    【测试】
    coap get coap://localhost/xukai871105
    【返回】
    (2.05)    Hello xukai871105
    (2.05)可理解为HTTP中的200 OK。coap的更多指令请阅读参考资料【2】
    
4 参考资料

NB-IoT现阶段访问一个服务器只能通过IP地址加端口的方式,省去了DNS解析,如果产品以后的IP变化或者改变了服务端的IP地址,就需要一个DNS解析的功能。 通过DNS解析某个域名的IP地址,获取到IP地址后再进行通信。 如果NB-IoT模块只能绑定一个IP,则可以通过这个IP先获取其他IP列表,然后统一经过这个IP进行转发。 参考: 1.1.2 NB卡准备 模组使用的SIM卡为中国电信物联网专用NB卡,如下图正面(留意NB字样,无此字样的均为不合法的NB卡): 背面(留意其ICCID号,在让运营商开放IP白名单时可能需要此号码,相当于手机卡的手机号): 重要:收到卡后,需要致电背面的客服电话, 使其将您自己的IP地址加入访问白名单,此一步完成后,方能进行下面的步骤,切记切记 。 如何判定服务器IP已被加入访问白名单,使用如下两种方式: 1. AT+NPING 指令,通过PING自己的服务器地址,如返回ERROR,则多半(尚需继续排除防火墙因素)未就绪; 2. UDP通讯,如能与自己的服务器直接连接UDP通讯,那可以证明一定就绪; 1.1.3 服务器准备  首先您需要有一个固定IP的公网服务器,由于目前BC95暂不支持域名解析,故必须使用IP地址配置方式。  服务器可以使用阿里云服务器,目前本CoAP端暂未开源,有Windows 32位、Windows 64位、Linux CentOS 6、CentOS 7的可执行文件,请暂时选择以上指定系统;  CoAP标准协议使用 UDP 5683 端口,当然您也可以自定义此端口,必须让防火墙放通UDP 的指定端口;  CoAP网关需要使用WEB方式进行设备管理、用户管理等,默认使用 TCP 8080 端口,同 理,防火墙必须放通此端口; 1.1.4 模组准备 推荐使用 串口调试助手 sscom 来调试NB模组,如下,首先将您的NB模组上电使其启动,使用AT指令能收到OK的回复,证明已启动完毕,按如下步骤进行: 基础配置 1. 配置 NCDP 服务器,使用的指令序列为 AT+CFUN=0 +NCDP=103.37.149.19,5683 AT+NRB 留意 IP 地址必须为您自己指定的IP地址,如果暂时没有,也可以用 如上 地址临时使用(但 WEB 设备管理地址也需换成这个IP),完成后重启了设备; 2. 等待设备附着网络后,使用 AT+NPING=103.37.149.19 尝试PING自己的服务器,当返回ERROR时,极有可能是 IP 白名单未成功配置的缘故; 3. 使用 AT+CGSN=1 查询设备 IMEI 号,并将设备的 IMEI 注册到 WEB 平台,如果在上面操作 过,可忽略。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值