• nodejs之socket.io模块——实现了websocket协议


    Nodejs实现websocket的4种方式:socket.io、WebSocket-Node、faye-websocket-node、node-websocket-server,主要使用的是socket.io

    1、服务端:

    1)首先安装socket.io

     npm  install  socket.io

    2)server.js

    1. var app = require('http').createServer(handler),   
    2.     io = require('socket.io').listen(app),   
    3.     fs = require('fs')  
    4.   
    5. app.listen(8080);  
    6. io.set('log level', 1);//将socket.io中的debug信息关闭  
    7.   
    8. function handler (req, res) {  
    9.   fs.readFile(__dirname + '/index.html',function (err, data) {    
    10.     if (err) {  
    11.       res.writeHead(500);  
    12.       return res.end('Error loading index.html');  
    13.     }      
    14.     res.writeHead(200, {'Content-Type': 'text/html'});      
    15.     res.end(data);  
    16.   });  
    17. }  
    18.   
    19. io.sockets.on('connection', function (socket) {  
    20.     socket.emit('news', { hello: 'world' });  
    21.     socket.on('my other event', function (data) {  
    22.       console.log(data);  
    23.     });  
    24. });  


    2、客户端:

    1)websocket是html5标准,浏览器内部已经支持了,其编程接口大致有connect、close、open、send几个接口,如果要使用浏览器原生的方式编写websocket,比较繁琐,所以可以下载一个客户端库方便编程,使用的是socket.io客户端库


    2)index.html

     
    1. <!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    5.     <title>Ssocket</title>  
    6.     <script type="text/javascript" src="https://cdn.socket.io/socket.io-1.3.5.js"></script>       
    7. </head>  
    8.   
    9. <body>  
    10.     <script type="text/javascript">  
    11.       var socket = io.connect('http://localhost:8080');       
    12.       socket.on('news', function (data) {      
    13.         alert(data.hello);  
    14.         socket.emit('my other event', { my: 'data' });  
    15.       });  
    16.     </script>  
    17.       
    18. </body>  
    19. </html>  


    3、测试:

    启动服务端nodejs代码:node  server.js

    在浏览器输入 http://localhost:8080/index.html


    浏览器打印出: world


    命令行打印出:{ my: 'data' }

  • 相关阅读:
    公钥基础设施PKI 简介
    密码库LibTomcrypt的内容介绍及分析
    trace
    winform(C#)拖拽实现获得文件路径
    无线网络技术
    设备控制选项的部分列表
    dll #pragma data_seg注意事项
    RFC
    奥运火炬传递路线
    WMIC命令大全
  • 原文地址:https://www.cnblogs.com/ziqian9206/p/7234755.html
Copyright © 2020-2023  润新知