• socket.io进阶 双人聊天室举例


    //服务端

    // Setup basic express server
    var express = require('express');
    var app = express();
    var path = require('path');
    var server = require('http').createServer(app);
    var io = require('../..')(server);
    var port = process.env.PORT || 8080;
    
    server.listen(port, function () {
      console.log('Server listening at port %d', port);
    });
    
    // Routing
    app.use(express.static(path.join(__dirname, 'public')));
    
    io.on('connection', function (socket) {
        var url = socket.request.headers.referer;
        //room 根据具体的生成或者添加
        var room=url.split('room_id')[1].substring(1);
        socket.join(room);
        socket.on('disconnect', function(){
            console.log('user disconnected');
        });
        socket.on('new message', function (data) {
            io.to(room).emit('receive message',data );
        });
    });

    //客户端

    index.html

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Socket.IO Chat Example</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <input class="input" type="text" maxlength="14" />
    <button id="bbb">点击发送消息</button>
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script src="/main.js"></script>
    </body>
    </html>

    main.js

    $(function() {
      var socket = io();
      $('#bbb').click(function(){
          var message=$('.input').val()
          if(message){
              socket.emit('new message',message)
          }else{
              alert('请输入信息')
          }
    
      })
    
        socket.on('receive message', function (data) {
            console.log(data);
        });
    });

    npm install

    npm start

    打开2个链接:

    localhost:8080/?room_id=%27room1%27     

  • 相关阅读:
    自动化运维工具——ansible剧本playbook(三)
    自动化运维工具——ansible系列命令
    自动化运维工具——ansible命令使用(二)
    自动化运维工具——ansible安装入门(一)
    SSH密钥验证
    es中的或加should
    es聚合后比较结果显示
    es聚合having count>0
    类的内部调用和多线程调用解决事务、aop失效的问题
    es注意点
  • 原文地址:https://www.cnblogs.com/heyinwangchuan/p/8352184.html
Copyright © 2020-2023  润新知