Nodejs 实现服务端与客户端简单通信
Posted 乱舞春秋__
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs 实现服务端与客户端简单通信相关的知识,希望对你有一定的参考价值。
通过Nodejs,我们可以快速地搭建一个简单的Web服务器,实现服务端与客户端的简单通信。
服务端
- 实现过程
- 引入
http
、fs
、url
三个模块 - 使用
createServer
方法创建一个服务 - 服务监听
3000
端口号 - 当客户端向服务端发起请求时,服务端先进行路径解析,然后使用
readFile
方法读取客户端请求的文件,最后将数据返回至客户端。
- 服务端代码:
const http = require('http')
const fs = require('fs')
const url = require('url')
//创建服务器
http.createServer((req, res) => {
//解析请求
const pathname = url.parse(req.url).pathname
console.log(pathname)
//读取请求的文件内容
fs.readFile(pathname.substr(1), (err, data) => {
if (err) {
//状态码:404
res.writeHead(404, { 'Content-Type': 'text/html; charset=utf-8' })
}
else {
//状态码: 200 OK
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' })
//响应文件内容
res.write(data.toString())
}
res.end()
})
}).listen(3000, () => { console.log('Server running at http://localhost:3000/') })
客户端
- 实现过程
- 引入
http
模块 - 配置请求
- 设置处理响应的回调函数
- 通过
request
方法向服务器发起请求
- 客户端代码:
//引入http模块
const http = require('http')
//配置请求
const options = {
host: 'localhost',
port: '3000',
path: '/index.html'
}
//处理响应的回调函数
const callback = (res) => {
let body = ''
res.on('data', (data) => {
body += data
})
res.on('end', () => {
console.log(body)
})
}
//发起请求
const req = http.request(options, callback)
req.end()
以上是关于Nodejs 实现服务端与客户端简单通信的主要内容,如果未能解决你的问题,请参考以下文章
Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息