Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phodal/lan
Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.
https://github.com/phodal/lan
Last synced: 3 months ago
JSON representation
Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.
- Host: GitHub
- URL: https://github.com/phodal/lan
- Owner: phodal
- License: mit
- Created: 2015-07-29T00:38:24.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-04-28T10:33:35.000Z (over 4 years ago)
- Last Synced: 2024-07-20T11:45:14.029Z (4 months ago)
- Language: JavaScript
- Homepage: http://lan.phodal.com
- Size: 511 KB
- Stars: 567
- Watchers: 85
- Forks: 198
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lan IoT Server
[![Build Status](https://travis-ci.org/phodal/lan.svg?branch=master)](https://travis-ci.org/phodal/lan)
[![Code Climate](https://codeclimate.com/github/phodal/lan/badges/gpa.svg)](https://codeclimate.com/github/phodal/lan)
[![Test Coverage](https://codeclimate.com/github/phodal/lan/badges/coverage.svg)](https://codeclimate.com/github/phodal/lan/coverage)> Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.
Inspired by [Qest](https://github.com/mcollina/qest)
Test on Node Version: ``v5``,``v6``
## Architecture:
![IoT Struct](docs/struct.png)
详细可见:《自己动手设计物联网》
![Designiot](docs/design-iot.jpg)
立即购买:[亚马逊](https://www.amazon.cn/dp/B01IBZWTWW/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=BDXF90QZX6WX&coliid=I19EB97K0GNLW8)、[京东](http://search.jd.com/Search?keyword=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E8%AE%BE%E8%AE%A1%E7%89%A9%E8%81%94%E7%BD%91&enc=utf-8&wq=%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E8%AE%BE%E8%AE%A1%E7%89%A9%E8%81%94%E7%BD%91&pvid=k24y6hri.l4xi28)
## Lan Server Layer:
![Lan Struct](docs/iot.jpg)
## 配置
默认配置:
```javascript
{
"encrypt": "crypto",
"db_url": "mongodb://localhost:27017/lan",
"db_collection": "documents",
"db_collection_user": "user",
"modules": [
"coap",
"http",
"mqtt",
"websocket"
],
"port": {
"http": 8899,
"websocket": 8898,
"coap": 5683,
"mqtt": 1883
},
"logging" :true,
"secret": "keyboard cat"
}
```encrypt: ["crypto", "bcrypt"]
modules: ["coap", "http", "mqtt", "websocket"]
Use ``bcrypt``, please install it:
npm install --save bcrypt
## Docker
``Require``: Docker
docker build .
## 安装(Setup)
``必装``:
1. MongoDB -> NoSQL: 数据存储
2. Sqlite || MySQL || PostgreSQL || MariaDB || MSSQL -> SQL: 存储用户信息然后:
1.Clone
git clone https://github.com/phodal/lan --recursive
2.安装依赖
npm install
bower install
3.修改config下的配置/config.json 数据库配置
/default.json Lan系统配置4.数据库初始化
npm install -g sequelize-cli
sequelize db:migrate
5.Start Cron
node jobs/cron.js
6.运行
npm start
## Setup``require``: Install
1. ``MongoDB``
2. Sqlite || MySQL || PostgreSQL || MariaDB || MSSQL -> SQL: save user infoThen.
1.Install dependencies
npm install
Or Just Production only:
npm install --production
2.Setup Database
sequelize db:migrate
3.Start Cron
node jobs/cron.js4.Run
npm start
## Test With Tool
### HTTP
Get
curl --user root:root -X GET -H "Content-Type: application/json" http://localhost:8899/topics/rootPUT/POST - cUrl
curl --user root:root -X PUT -d '{ "dream": 1 }' -H "Content-Type: application/json" http://localhost:8899/topics/root
### MQTT
Publish - Mosquitto
mosquitto_pub -u root -P root -h localhost -d -t lettuce -m "Hello, MQTT. This is my first message."
Subscribe - Mosquitto
mosquitto_sub -t message -h localhost -u root -P root
### CoAP
POST/PUT - libcoap
coap-client -e "{message: 'hello,world}" -m put coap://127.0.0.1/topic?root:root
GET - libcoap
coap-client -m get coap://127.0.0.1:5683/topic?root:root
GET/POST/PUT - Copper
1. Visit [coap://127.0.0.1:5683/topic?root:root](coap://127.0.0.1:5683/topic?root:root)GET: Click ``GET``
POST: Type on ``Outgoing``, Click ``POST``
### WebSocket
Message
node test_scripts/ws_test.js
## Auth
Standalone (单机)
``User`` -> ``SQL Database`` (Auth)
``SQL Database`` -> ``NoSQL`` (Save)
Multi
``User`` -> ``SQL Database`` (Save)
``SQL Database`` -> ``NoSQL`` (Cron Job || MQ)
``User`` -> ``NoSQL`` (Auth && Save)## License
© 2015~2016 [Phodal](https://www.phodal.com/). This code is distributed under the MIT license.