• node学习笔记之io.sockets


     socket.get和socket.set函数已经失效,代码修改如下所示:

    服务器端:

    var httpd = require('http').createServer(handler);
    var io = require('socket.io').listen(httpd);
    var fs = require('fs');
    
    httpd.listen(3000);
    
    function handler(req, res) {
      fs.readFile(__dirname + '/index.html',
        function(err, data) {
          if (err) {
           res.writeHead(500);
           return res.end('Error loading index.html');
          }
    
          res.writeHead(200);
          res.end(data);
        }
      );
    }
    
    io.sockets.on('connection', function (socket) {
      socket.on('clientMessage', function(content) {
        socket.emit('serverMessage', 'You said: ' + content);
        var username = null;
    
        if (socket.username) {
            username = socket.username;
        }
          socket.broadcast.emit('serverMessage', username + ' said: ' + 
            content);
      });
    
      socket.on('login', function(username) {
        socket.username = username;
        socket.emit('serverMessage', 'Currently logged in as ' + username);
        socket.broadcast.emit('serverMessage', 'User ' + username +
          ' logged in');   
      });
    
      socket.emit('login');
    
    });

    客户端:

    <html>
      <head>
        <title>Node.js WebSocket chat</title>
        <style type="text/css">
          #input {
             200px;
          }
          #messages {
            position: fixed;
            top: 40px;
            bottom: 8px;
            left: 8px;
            right: 8px;
            border: 1px solid #EEEEEE;
            padding: 8px;
          }
        </style>
      </head>
    
      <body>
    
        Your message:
        <input type="text" id="input">
    
        <div id="messages"></div>
    
        <script src="http://localhost:3000/socket.io/socket.io.js"></script>
        <script type="text/javascript">
          var messagesElement = document.getElementById('messages');
          var lastMessageElement = null;
    
          function addMessage(message) {
            var newMessageElement = document.createElement('div');
            var newMessageText = document.createTextNode(message);
    
            newMessageElement.appendChild(newMessageText);
            messagesElement.insertBefore(newMessageElement, 
              lastMessageElement);
            lastMessageElement = newMessageElement;
          }
    
          var socket = io.connect('http://localhost:3000');
          socket.on('serverMessage', function(content) {
            addMessage(content);
          });
    
          socket.on('login', function() {
            var username = prompt('What username would you like to use?');
            socket.emit('login', username);
          });
    
          var inputElement = document.getElementById('input');
    
          inputElement.onkeydown = function(keyboardEvent) {
            if (keyboardEvent.keyCode === 13) {
              socket.emit('clientMessage', inputElement.value);
              inputElement.value = '';
              return false;
            } else {
              return true;
            }
          };
        </script>
    
      </body>
    </html>
  • 相关阅读:
    A basic Windows service in C++ (CppWindowsService)
    json转换为键值对辅助类
    函数参数复习
    python --------------网络(socket)编程
    计算器
    python------------------异常处理
    hashlib,configparser,logging模块
    面向对象之反射及内置方法
    python之--------封装
    继承进阶
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/10321161.html
Copyright © 2020-2023  润新知