美文网首页
兄弟会精英班 - 学习笔记(十 二)

兄弟会精英班 - 学习笔记(十 二)

作者: bastonly | 来源:发表于2016-10-09 10:51 被阅读0次

Nodejs 长连接net 和 Socket.io

  • OSI模型 / TCP / UDP 的概念和大致区别;
  • 长连接socket 和 短连接http 的区别;
  • Nodejs 提供 Net 模块提供用于终端的网络通讯,

var net = require('net');

  1. 创建server.js
    var net = require('net'); var server = net.createServer(function(connection){ connection.on('end', function(){ console.log('client disconnect'); }); connection.write('Hello world!\r\n'); connection.pipe(connection); }); server.listen(8080, function(){ console.log('Server is listening'); });
  2. 创建client.js
    var net = require('net'); var client = net.connect({port: 8080}, function() { console.log('连接到服务器!'); }); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('断开与服务器的连接'); });

基于网页的WebSocket.

  1. 安装socket.io
  2. 编写服务端代码

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.send('<h1>Welcome Realtime Server</h1>'); }); .....

  1. 编写客户端html代码
  • 引入socket.io文件
  • 客户端连接服务器的js代码

//连接websocket后端服务器 this.socket = io.connect('ws://172.16.0.254:3000'); //告诉服务器端有用户登录 this.socket.emit('login', {userid:this.userid,username:this.username}); //监听新用户登录 this.socket.on('login', function(o){ console.log(o); //处理 ... }); //监听用户退出 this.socket.on('logout', function(o){ console.log(o); //处理 ... }); //监听消息发送 this.socket.on('message', function(obj){ console.log(obj); //处理消息 ... });

相关文章

网友评论

      本文标题:兄弟会精英班 - 学习笔记(十 二)

      本文链接:https://www.haomeiwen.com/subject/wxepyttx.html