zoukankan      html  css  js  c++  java
  • node(websocket)

    websocket原本是html5下实现长链接的一个特性,当前已被众多浏览器支持。

    在websocket协议中,首先通过http交换一次握手,明确将协议升级至websocket。同时建立一个TCP通道,以frame帧的方式交换数据。

    在node环境下基本功能实现如下:

    首先npm install socket.io

    1、app.js,初始化socket.io

    var srv = http.createServer(app).listen(app.get('port'), function(){
      console.log('Express server listening on port ' + app.get('port'));
    });
    
    var io     = require('socket.io').listen(srv);
    server.initServer(io);

    2、server.js实现服务器端代码

    exports.initServer = function(io){
        
        io.on('connection',function(socket){
            console.log('connection');
            socket.on('disconnect',function(msg){
                console.log('disconnect');
            });
            
            socket.on('msg1',function(msg){
                console.log(msg);            
                socket.emit('back',{key:'fredric&sinny'});
            });    
        });    
    }

    3、客户端代码

    <!DOCTYPE html>
    <html>
    <head>
    <script src = "socket.io.js"></script>
    <script>
        var socket = io.connect('http://localhost:3000');
        
        function sendmsg(){       
            console.log('start sendmsg');
            socket.emit('msg1',{key:'fredric'});
        }
        
        socket.on('back',function(msg){
            alert(msg.key);
        });
        
    </script>
    </head>
    <body>
    
    <button type="button" onclick='sendmsg()'>Click Me!</button>
    
    
    </body>
    </html>

    浏览器端调试网络接口如下:

  • 相关阅读:
    设计模式-1-概要(c#版)
    UML图示说明
    阿里云SLB双机IIS多站点负载均衡部署笔记
    阿里云分布式关系数据库DRDS笔记
    一些小经验
    NOSQL场景梳理
    内核linux-3.4.2支持dm9000
    构建根文件系统
    u-boot-1.1.6移植之dm9000
    移植u-boot-1.1.6(原创)
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4293700.html
Copyright © 2011-2022 走看看