美文网首页
2019-03-13

2019-03-13

作者: 明城北住院医 | 来源:发表于2019-03-13 17:55 被阅读0次
    WebSocket是HTML5一种新的协议它实现了浏览器与服务器全双工通信,同时允许跨域通讯,原生WebSocketAPI使用起来不太方便
    我们使用socket.io它很好地封装了webSocket接口 提供了更简单、灵活的接口,也对不支持webSocket的浏览器提供了向下兼容

    前端
    <div>user input:<input type="text"></div>
    <script src="./socket.io.js"></script>
    <script>
    var socket = io('http://www.domain2.com:8080');
    
    // 连接成功处理
    socket.on('connect', function() {
        // 监听服务端消息
        socket.on('message', function(msg) {
            console.log('data from server: ---> ' + msg); 
        });
    
        // 监听服务端关闭
        socket.on('disconnect', function() { 
            console.log('Server socket has closed.'); 
        });
    });
    
    document.getElementsByTagName('input')[0].onblur = function() {
        socket.send(this.value);
    };
    </script>
    
    Nodejs socket后台
    var http = require('http');
    var socket = require('socket.io');
    
    // 启http服务
    var server = http.createServer(function(req, res) {
        res.writeHead(200, {
            'Content-type': 'text/html'
        });
        res.end();
    });
    
    server.listen('8080');
    console.log('Server is running at port 8080...');
    
    // 监听socket连接
    socket.listen(server).on('connection', function(client) {
        // 接收信息
        client.on('message', function(msg) {
            client.send('hello:' + msg);
            console.log('data from client: ---> ' + msg);
        });
    
        // 断开处理
        client.on('disconnect', function() {
            console.log('Client socket has closed.'); 
        });
    });
    

    相关文章

      网友评论

          本文标题:2019-03-13

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