偶然的机遇,今天接触了服务器。刚开始不知道服务器为何物,今天算是了解了个大概。

搭建的TCP服务器算一个载体,可以把一些硬件获取到的数据全部接入网络,然后通过一个接口发给手机或者上位机。通过特定的IP地址。

我的手机想要操控一盏灯。可以通过服务器。将硬件端连入搭建好的服务器,然后软件端也连入对应的服务器。当服务器接收到手机发过去的指令后,处理一下再把数据发送给硬件端,硬件段接收到指令 ,实现开关灯。

IP地址:就是给互联网上每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符/

http://nodejs.cn/api/net.html#net_server_listening  nodejs API文档

const net = require('net'); //作用类似头文件
var number;const server = net.createServer((c) => {// 'connection' listenerconsole.log('client connected');c.on('end', () => {console.log('client disconnected');});c.on('data',function (data){// console.log(data);number = parseInt(data);number+=1;console.log(number);}) client.push(c);c.write('hello\r\n');
});
server.on('error', (err) => {console.log('监听出错');
});
server.listen(8124, () => {console.log('server bound');
});console.log('server bound123');

第一句话类似于C语言的头文件。分析一下,代码执行的时候会最先输出 server bound123。可能存在延迟还没有完全成功建立好服务器。然后才会输出 sever bound 代表完成  正在监听端口号的数据。   此时就算代码执行完成 。  然后一旦有用户连接,就会分配一个c给用户。去执行createServer C中的程序。这就有点类似于EDA的always语句。每当有东西改变的时候进入一下。 如果有用户连接,就会显示一个 client connected ,然后 发送给用户hello 。。 一旦用户发送数据给我 收到的数据是字符型的 利用parseint转化为数字型 将这个变量+1 打印在我的窗口上。 ======

最基本的用户连接弄好了 打算稍微升级一下,因为最后要做的项目是硬件和手机同时相连接,然后将硬件发给我的数据进行处理之后发送给手机。

const net = require('net');
var number;
var client=new Array([2]);const server = net.createServer((c) => {// 'connection' listenerconsole.log('client connected');c.on('end', () => {console.log('client disconnected');});c.on('data',function (data){// console.log(data);number = parseInt(data);number+=1;console.log(number);for(var i=0;i<2;i++){try{client[i].write(number.toString());}catch(e){c.write('对方暂时无法应答');  }}}) client.push(c);c.write('hello\r\n');
});
server.on('error', (err) => {console.log('监听出错');
});
server.listen(8124, () => {console.log('server bound');
});console.log('server bound123');

创建了一个数组 存放了2个用户。一个手机端一个硬件端。   如果只有一个用户连接的时候 ,可能会出现数组越界情况,因为有一个是空的找不到。 所以采用了独特的try函数。 试着去给两个用户端发送相同的信息,如果用户不存在,就转而发送给存在的用户 用户不存在。 这样便简单的实现了 2个用户的交互。    因为number是数字形式, 发送的都是字符,所以在try发送后面 增加了 number.toString();将数字转化为字符。

搭建物联网服务器基于nodejs相关推荐

  1. 基于ARM开发板搭建物联网服务器

    基于ARM开发板搭建物联网服务器 一.项目需求 1.1设备需求 1.2知识需求 1.3项目介绍 二.开发环境搭建 2.1阿里云服务器配置 2.2虚拟机交叉编译环境搭建 2.3下载相关应用压缩文件 三. ...

  2. 基于ESP32搭建物联网服务器十三(自已搭建一个MQTT服务器)

    在之前的文章中:ESP32搭建WEB服务器十二(使用MQTT协议与ESP32互动)_你的幻境的博客-CSDN博客 我们已经实现了ESP32通过MQTT协议连接到公共MQTT服务器上,但是公共服务器在稳 ...

  3. 基于centos搭建物联网服务器,带后台以及数据库(搭建耗时半小时左右)

    服务器代码是php编写的,workerman; 下面是workerman的官网,关于框架的介绍,这里不在赘述. https://www.workerman.net/doc 后台管理是基于phpstud ...

  4. 基于ESP32搭建物联网服务器一(AP配网)

    目录 一.WiFi.mode();设置配网模式 二.WiFi.softAP();设置ESP32的WIFI属性 三.WiFi.softAPConfig();设置ESP32的IP,网关,子网掩码,DHCP ...

  5. 嵌入式Linux搭建物联网网关,基于嵌入式Linux的物联网网关研究与实现

    摘要: 随着物联网发展速度日益加快,作为连接感知网络和传统通信网络的物联网网关正在其中扮演着重要角色.然而,目前针对物联网网关的统一标准尚未制定,物联网网关的设备类型千差万别.人们往往针对某一具体应用 ...

  6. 基于wordpress搭建网站和基于nodejs自己搭建

    帮朋友做一个下载站的网站,有两种方案: 1 基于wordpress 优势:自带后台,很多插件可用,同时网站结构.组织.分类系统.tag系统还是蛮实用的 劣势:需要自定义post的字段,比如下载链接.名 ...

  7. 树莓派搭建MQTT服务器(基于EMQ)

    文章目录 1.准备工作 1.1知识储备 2.安装EMQ 3.测试MQTT服务器 3.1 新建服务器管理员 3.2 登录到服务器后台 3.3 MQTT客户端测试 1.准备工作 1.1知识储备 关于MQT ...

  8. Linux Centos7搭建邮件服务器

    Linux Centos7搭建邮件服务器 基于sendmail和Dovecot 一.关闭防火墙和selinux systemctl stop firewalld setenctoce 0 二.下载se ...

  9. [Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建

    一.前言 intel-iot-examples-datastore 是Intel提供用于所有Edison开发板联网存储DEMO所需要的服务器工程.该工程是基于nodejs和redis写成的一个简单的工 ...

  10. arm Linux 低成本方案,参赛作品《低成本基于ARM+Linux平台搭建web服务器的物联网学习板》...

    [报名阶段需要填写的内容] 1. 参赛者姓名(必填项): 王徕泽 2. 单位或学校名称(选填项): 徕泽电子工作室 3. 当前职务或职称(选填项): 室长 4. 参赛作品的名字(必填项): 低成本基于 ...

最新文章

  1. c#读写XML文件 (转)
  2. Android解决button反复点击问题
  3. docker安装RabbitMQ镜像
  4. 【es】INDEX_CREATED the shard cannot be allocated to the same node a copy of the shard already
  5. [Java] 蓝桥杯PREV-3 历届试题 带分数
  6. 在python中、关于全局变量和局部变量、以下_关于全局变量和局部变量-Python
  7. xamarin.forms 绑定页面里指定元素的某个属性值
  8. OSGB 倾斜摄影数据生产完成后裁剪模型问题
  9. html超链接调用js函数,在html中引入外部js文件,并调用带参函数的方法
  10. 美国拉斯维加斯游戏CRAPS(花旗骰)掷骰子的游戏的C语言版本
  11. 桐桐的数学难题(质因数分解)
  12. 2019我的Java面试跳槽经历
  13. 【个人C++学习日记】
  14. RelativeLayout控件之填满
  15. Java获取本机ip和服务器ip
  16. 嵌入式开发之NorFlash 和NandFlash
  17. 解决”您的连接不是私密链接“的问题!
  18. 如果你不想做某些事情,那就找个对象吧, 让对象代你做!
  19. GitHub开源成语接龙查询器,已收录16765个成语
  20. 微信小程序 vant 样式覆盖与定制主题

热门文章

  1. java获取世界各国地址,获取世界各国、全国省份、城市、县
  2. 街机中国 FBA4droid 应用
  3. JS打开新页面的两种方式:当前页面打开和新页面打开
  4. 【华为OD机试真题 JS】解压报文
  5. Idea中jrebel激活码
  6. 【Neo4j】第 1 章:图数据库
  7. ZooKeeper实际应用案例-开发实战
  8. Python数据处理Tips数据离群值的5种常用处理方法和可视化
  9. linux正则表达式大全,正则表达式,正则表达式语法大全
  10. uni-app项目利用HBuilder X工具使用命令一键自动编译导出APP资源