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

 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 参考资料

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要在EMQ X中安装CoAP插件,请按照以下步骤进行操作: 1. 首先,确保您已经安装了EMQ X,并且已经成功运行了EMQ X Broker。 2. 接下来,下载CoAP插件的源代码。您可以从GitHub上的EMQ X CoAP插件存储库中找到它:https://github.com/emqx/emqx-coap 3. 将源代码复制到EMQ X的插件目录中。在大多数EMQ X安装中,插件目录位于/opt/emqx/plugins/。 4. 然后,使用以下命令在EMQ X中启用CoAP插件: ``` emqx_ctl plugins load emqx_coap ``` 5. 验证CoAP插件是否已成功加载。您可以使用以下命令: ``` emqx_ctl plugins list ``` 如果CoAP插件已成功加载,则应该可以在列表中看到它。 6. 最后,您可以使用CoAP协议连接到EMQ X Broker。 注意:启用CoAP插件时,您需要在EMQ X的配置文件中添加一些配置。有关详细信息,请参见EMQ X CoAP插件存储库中的说明文档。 ### 回答2: 要在EMQ X 中安装 CoAP 插件,您可以按照以下步骤进行操作: 1. 下载并安装 EMQ X,可以从官方网站 https://www.emqx.io/ 下载最新版本的 EMQ X。 2. 打开终端或命令提示符,并进入 EMQ X 的安装目录。 3. 在 EMQ X 的安装目录下找到 `etc/plugins` 文件夹,这是存放插件的目录。 4. 在 `etc/plugins` 目录下创建一个新的文件夹,命名为 `emqx_coap`。 5. 在 `emqx_coap` 目录下创建一个新的文件夹,命名为 `etc`。 6. 在 `etc` 目录下创建一个新的文件,命名为 `emqx_coap.conf`。 7. 打开 `emqx_coap.conf` 文件,并将以下配置复制到文件中: ```bash ## EMQ X CoAP Config ## Listener for CoAP Server listener.coap = 5683 ## CoAP Message Types: 1. Confirmable(CoAP_MESSAGE_CON), 2. Non-confirmable(CoAP_MESSAGE_NONCON) coap.message_type = CoAP_MESSAGE_CON ## CoAP Max Message Payload Size coap.max_message_size = 1024 ## CoAP Endpoint to Forward MQTT coap.forward_coap_to_mqtt = on ## CoAP Endpoint to Forward MQTT-SN coap.forward_coap_to_mqtt_sn = on ``` 8. 保存并关闭 `emqx_coap.conf` 文件。 9. 返回到 EMQ X 的安装目录。 10. 打开 `etc/plugins` 目录下的 `emqx.conf` 文件,并找到 `plugins` 部分。 11. 在 `plugins` 部分的最后添加以下配置: ```bash ## CoAP ##-------------------------------------------------------------------- {emqx_coap, true} ``` 12. 保存并关闭 `emqx.conf` 文件。 13. 启动 EMQ X 服务器。 通过以上步骤,您已经成功安装和配置了 EMQ X 的 CoAP 插件。您可以使用 CoAP 协议与 EMQ X 进行通信。请注意,CoAP 插件默认监听端口为 5683,您可以根据需要进行修改。 ### 回答3: 要在EMQ X中安装CoAP插件,可以按照以下步骤进行: 1. 首先,确保已经安装了EMQ X MQTT Broker。可以从EMQ X的官方网站下载并按照安装指南进行安装。 2. 下载CoAP插件。可以从EMQ X的官方GitHub库中找到最新的CoAP插件版本。下载后将其解压缩到一个合适的位置。 3. 进入EMQ X的安装目录,并找到emqx.conf文件。这是EMQ X的主要配置文件。 4. 打开emqx.conf文件,并在末尾添加以下内容: ``` ## CoAP listeners listener.coap.default = 5683 ## CoAP server, Load plugin `emqx_coap` ## 装载 CoAP 协议处理插件 ## 设置 CoAP 插件为 Emqx 的启动插件 ## emqx_coap 所在路径请根据你的安装路径进行设置 ##coap.listener.default.acceptors = 16 ##coap.listener.default.max_connections = 1024000 ##coap.listener.default.ip = 0.0.0.0 ##coap.listener.default.port = 5683 ##coap.listener.default.zone = external ##coap.env_default.listener = default ## If you want to disable session persistent on server ##coap.listener.default.persistence = off ## coap.listener.default.pemfile = etc/certs/coap.pem ## coap.listener.default.servername = emqx ## CoAP opts coap_opts.max_msg_len = 4096 coap_opts.max_inactivity_timeout = 5m ## Logging ##coap.log.level = info ## coap.log.file = /path/to/file.log ##coap.log.file.size = 100MB ##coap.log.file.level = info ``` 5. 解除以下代码段的注释: ``` ## 装载CoAP插件 ## emqx_coap所在路径请根据你的安装路径进行设置 ## 这里必须保留前面的空格 ## ## 比如插件的路径为: ## ## /path/to/emqx_coap/priv/emqx_coap.beam ## /path/to/emqx_coap/priv/emqx_msg_coap.beam ## ## 那么这里应配置为: ## ## /path/to/emqx_coap/priv ## plugins/emqx_coap = true ``` 6. 保存并关闭配置文件。 7. 启动EMQ X服务。可以通过运行`emqx start`命令来启动。 8. 安装完成后,就可以使用CoAP协议和EMQ X进行通信了。 请注意,这只是简单的安装和配置CoAP插件的示例,实际上还有更多的配置选项可供设置,根据自己的需求进行相应的修改。在插件的文档中可以找到更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值