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

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

作者: 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