socket.io -- 通信

WebSocket

WebSocket 是一种网络通信协议,很多高级功能都需要它。HTTP协议有一个缺陷,通信只能由客户端发起。而Websocket协议在2011年成为国际标准。所有浏览器支持了。它最大的特点是:

服务器可以主动向客户端推送消息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

目前所有的主流Web语言都有对WebSocket做很好的支持,其中也有很多优秀的通讯框架可以任你挑选,因此万万不可畏惧它的存在,除非你真的想用Ajax轮询去解决消息I/O。WebSocket会使得你的消息接受和传递变得极其轻松,最重要的一点是,性能卓绝。WebSocket的建立非常简单

官网: https://socket.io/

Server API (服务端):https://socket.io/docs/server-api/

Client API (客户端):https://socket.io/docs/client-api/


服务端

Server 类

通过http.createServer创建服务,再通过io = require('socket.io')(server)返回Server类(即:io就是Server类)。

1. 创建Server类(socket.io的初始化实例)

1). Node http server

Server(app.js)

// 引入node.js的内置http模块
var http = require('http') 
// 创建http.server实例,返回Server类。 
//handler是带有两个参数(req, res)的函数,会自动添加到request事件
var server = http.createServer(handler);
//引入socket.io模块,并进行socket.io的实例初始化
var io = require('socket.io')(server); 
//引入Node.js的fs文件系统模块
var fs = require('fs'); 
//监听 HTTP 服务器的连接function 
server.listen(80); 
 //创建http.server实例的回调函数 
handler (req, res) {
    // __dirname : Node.js的全局常量,是运行当前文件的目录路径;读取指定目录下的文件 
    fs.readFile(__dirname + '/index.html', function (err, data) {
       //回调函数     	
      if (err) {      	     
          res.writeHead(500);      	     
          return res.end('Error loading index.html');
          //如果指定data,则相当于调用response.write(data)
    	}
    // 发送一个响应头(响应头包括:状态码、可选的状态描述、可选的响应头对象)给请求。	    	
    res.writeHead(200); 
       	res.end(data); 
       // res.end()通知服务器,所有响应头和响应主体都已经被发送。    
    });
}
//对客户端发起连接  
io.on('connection', function (socket) {
 //socket === 返回的Socket类
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值