zoukankan      html  css  js  c++  java
  • 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     

  • 相关阅读:
    状态压缩dp未吃透の笔记
    洛谷blog传送门qwq
    线段树学习总结(Do not be the cheater)
    第三届NOI Online普及组线上比赛赛后总结
    第三届NOI Online入门组第三题 手表(watch)题解
    P1162 填涂颜色 题解(勿抄袭)
    4980:拯救行动 题解
    P1433 吃奶酪 题解(勿抄袭)
    Mysql-多表数据记录查询
    java-多线程
  • 原文地址:https://www.cnblogs.com/heyinwangchuan/p/8352184.html
Copyright © 2011-2022 走看看