Node.js中构建TCP网络连接和搭建HTTP服务器有什么不同

JavaScript013

Node.js中构建TCP网络连接和搭建HTTP服务器有什么不同,第1张

一,相同点

1,都调用了createServer方法。

2,当客户端接入时都会执行一个回调函数。

二,不同之处

1,回调函数的中对象的类型。net服务器中,是个连接(connect)对象,而在HTTP服务器中,则是请求和响应对象。

2,原因:

1,http服务器是更高层的API,提供了控制和HTTP协议相关的一些功能。

2,浏览器在访问站点时不会只用一个连接,很多主流的浏览器为了更快的加载网站内容,能够像同一个主机打开八个不同的连接,并发送请求。Node为了不让我们担心是请求还是连接,为我们提供了请求和响应的抽象。因此,即使你能通过req.connection属性获得TCP连接对象,但大多数情况下你还是在与请求和响应的抽象打交道。

可以实现的

// 创建一个Socket实例

var socket = new WebSocket('ws://localhost:8080') 

// 打开Socket 

socket.onopen = function(event) { 

  // 发送一个初始化消息

  socket.send('I am the client and I\'m listening!') 

  // 监听消息

  socket.onmessage = function(event) { 

    console.log('Client received a message',event) 

  } 

  // 监听Socket的关闭

  socket.onclose = function(event) { 

    console.log('Client notified socket has closed',event) 

  } 

  // 关闭Socket.... 

  //socket.close() 

}

参数为URL,ws表示WebSocket协议。onopen、onclose和onmessage方法把事件连接到Socket实例上。每个方法都提供了一个事件,以表示Socket的状态。