본문 바로가기

Slack 채널 정리

VDI 에서 메시지 전송

사내 VDI 환경에서 로컬 컴으로 메시지 복사 막혀있어서 node.js 챗 샘플 코드 주워다가 살짝 손봐서 메시지 전송 사용. 타이핑 줄이기 위한 꽁수.

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

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

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

app.get('/jquery/jquery.js', function(req, res) {
  res.sendfile(__dirname + '/node_modules/jquery/dist/jquery.min.js');
});

io.on('connection', function(socket) {
  socket.on('sms', function(data) {
    var msg = {
      msg: data.msg
    };

    socket.broadcast.emit('sms', msg);
  });

  socket.on('forceDisconnect', function() {
    socket.disconnect();
  });

  socket.on('disconnect', function() {
    console.log('user disconnected');
  });
});

server.listen(3000, function() {
  console.log('Socket IO server listening on port 3000');
});

// index.html
  <form>
      <textarea rows="20" cols="100" id="msgForm"></textarea>
      <button type="submit" class="btn btn-primary">Send</button>
  </form>
  <script src="/jquery/jquery.js"></script>
  <script src="/socket.io/socket.io.js"></script>
  <script>
  $(function(){
    var socket = io();
    $("form").submit(function(e) {
      e.preventDefault();
      var $msgForm = $("#msgForm");
      socket.emit("sms", { msg: $msgForm.val() });
      $msgForm.val("");
    });
  });
  </script>

// log.html
  <script src="/jquery/jquery.js"></script>
  <script src="/socket.io/socket.io.js"></script>
  <script>
  $(function(){
    var socket = io();
    socket.on("sms", function(data) {
      console.log(data.msg);
    });
  });