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