tmp

간단한 채팅

· 2023-02-15 (수) 09:03:30 · 2095

간단한 노드 채팅 예제입니다

 

1. 노드설치 후, 서버 js 실행

// server.js
var express = require('express');
var app = express();
var http = require('http').Server(app); //1
var io = require('socket.io')(http);    //1

app.get('/',function(req, res){  //2
  res.sendFile(__dirname + '/client.html');
});

var count=1;
io.on('connection', function(socket){ //3
  console.log('user connected: ', socket.id);  //3-1
  var name = "user" + count++;                 //3-1
  io.to(socket.id).emit('change name',name);   //3-1

  socket.on('disconnect', function(){ //3-2
    console.log('user disconnected: ', socket.id);
  });

  socket.on('send message', function(name,text){ //3-3
    var msg = name + ' : ' + text;
    console.log(msg);
    io.emit('receive message', msg);
  });
});

http.listen(3000, function(){ //4
  console.log('server on!');
});


2. 메세지 입력 화면

// client.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Chat</title>
    <style>
      .chat_log{ width: 95%; height: 200px; }
      .name{ width: 10%; }
      .message{ width: 70%; }
      .chat{ width: 10%; }
    </style>
  </head>
  <body>
    <div>
      <textarea id="chatLog" class="chat_log" readonly></textarea>
    </div>
    <form id="chat">
      <input id="name" class="name" type="text" readonly>
      <input id="message" class="message" type="text">
      <input type="submit" class="chat" value="chat"/>
    </form>
    <div id="box" class="box">
    <script src="/socket.io/socket.io.js"></script> <!-- 1 -->
    <script src="//code.jquery.com/jquery-1.11.1.js"></script>
    <script>
      var socket = io(); //1
      $('#chat').on('submit', function(e){ //2
        socket.emit('send message', $('#name').val(), $('#message').val());
        $('#message').val('');
        $('#message').focus();
        e.preventDefault();
      });
      socket.on('receive message', function(msg){ //3
        $('#chatLog').append(msg+'\n');
        $('#chatLog').scrollTop($('#chatLog')[0].scrollHeight);
      });
      socket.on('change name', function(name){ //4
        $('#name').val(name);
      });
    </script>
  </body>
</html>

 

상세설명
https://onlyfor-me-blog.tistory.com/99

|
댓글을 작성하시려면 로그인이 필요합니다.

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
OS 23-03-13 조회 1,562
웹서버 23-03-13 조회 1,682
웹서버 23-03-13 조회 1,814
PHP 23-03-13 조회 1,628
PHP 23-03-13 조회 1,650
PHP 23-03-13 조회 1,663
PHP 23-03-13 조회 1,609
PHP 23-02-23 조회 1,620
JavaScript 23-02-23 조회 1,668
PHP 23-02-23 조회 2,522
웹서버 23-02-23 조회 1,608
PHP 23-02-23 조회 1,764
PHP 23-02-21 조회 1,613
node.js 23-02-15 조회 2,096
OS 23-02-10 조회 2,310
웹서버 23-02-08 조회 1,654
PHP 23-02-07 조회 7,973
JavaScript 23-01-31 조회 2,492
PHP 23-01-26 조회 1,677
PHP 23-01-03 조회 2,323
JavaScript 23-01-02 조회 1,565
PHP 23-01-02 조회 1,673
웹서버 22-12-14 조회 3,309
기타 22-11-29 조회 2,319
JavaScript 22-11-24 조회 1,977
PHP 22-11-07 조회 2,298
MySQL 22-11-01 조회 2,479
PHP 22-10-31 조회 2,750
PHP 22-10-16 조회 2,789
JavaScript
[JavaScript]
22-10-04 조회 1,843