Giter Site home page Giter Site logo

jouker2k / lan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from phodal/lan

0.0 2.0 0.0 481 KB

Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.

Home Page: http://lan.phodal.com

License: MIT License

JavaScript 91.83% CSS 1.47% HTML 6.54% Shell 0.16%

lan's Introduction

Lan IoT Server

Build Status Code Climate Test Coverage

Internet of Things Server Layer with CoAP, WebSocket, MQTT, HTTP Protocol.

Inspired by Qest

Test on Node Version: v5,v6

Architecture:

IoT Struct

详细可见:《自己动手设计物联网》

Designiot

立即购买:亚马逊京东

Lan Server Layer:

Lan Struct

配置

默认配置:

{
  "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 info

Then.

1.Install dependencies

npm install

Or Just Production only:

npm install --production

2.Setup Database

sequelize db:migrate 

3.Start Cron

node jobs/cron.js

4.Run

npm start

Test With Tool

HTTP

Get

curl --user root:root -X GET -H "Content-Type: application/json" http://localhost:8899/topics/root

PUT/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

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. This code is distributed under the MIT license.

lan's People

Contributors

phodal avatar swizardlv avatar marcbachmann avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.