2016-03-30 25 views
1

我做了一个与nodejs的小聊天应用程序,现在我试图使它成为可能,如果两个人聊天,他们也可以发送小文件给每个人其他。如何发送文件给其他人在小nodejs聊天应用程序

我刚开始学习节点,所以对我来说有点困惑。我试图做这个工作,但我甚至不知道我该怎么做。

因此,任何帮助都是欢迎的。

BTW var文件是从输入型=文件的文件。

这里是我的代码:

index.js

var express = require("express"); 
    var app = express(); 
    var fs = require("fs"); 
    var port = 8888; 


     // fs.readFile(sendFile, function (err, data) { 
     // if (err) { 
     //   return console.error(err); 
     // } 
     // console.log("Asynchronous read: " + data.toString()); 
     // }); 

    app.set('views', __dirname + '/tpl'); 
    app.set('view engine', "jade"); 
    app.engine('jade', require('jade').__express); 
    app.use(express.static(__dirname + '/public')); 

    app.get("/", function(req, res){ 
     res.render("page"); 
    }); 

    var io = require('socket.io').listen(app.listen(port)); 

    io.sockets.on('connection', function (socket) { 
     socket.emit('message', { message: 'Welcome to the chat :)' }); 
     socket.on('send', function (data) { 
      io.sockets.emit('message', data); 
     }); 
    }); 

    io.sockets.on('sendFile', function(data){ 
     socket.emit('getFile',data) 
    }); 

chat.js

 window.onload = function() { 

      var messages = []; 
      var socket = io.connect('http://'+location.host); 
      var field = document.getElementById("field"); 
      var sendButton = document.getElementById("send"); 
      var content = document.getElementById("content"); 
      var name = document.getElementById("name"); 
      var file = document.getElementById("file").files; 


     // file.onchange = function(e) { 
     // var file = document.getElementById("file").files; 
     // console.log(file); 
     // } 

      socket.on('message', function (data) { 
       if(data.message) { 
        messages.push(data); 
        var html = ''; 
        for(var i=0; i<messages.length; i++) { 
         html += '<b>' + (messages[i].username ? messages[i].username : 'Server') + ': </b>'; 
         html += messages[i].message + '<br />'; 
        } 
        content.innerHTML = html; 
       } else { 
        console.log("There is a problem:", data); 
       } 
      }); 

      socket.on('getFile', function (data) { 
       console.log(data); 
      }); 


      sendButton.onclick = sendMessage = function() { 
       if(name.value == "") { 
        alert("Please type your name!"); 
       } else { 
        socket.emit('sendFile', file); 
        var text = field.value; 
        socket.emit('send', { message: text, username: name.value }); 
        field.value = ""; 
       } 
      }; 

      field.addEventListener("keyup", function(e){ 
       if(e.keyCode == 13) { 
        sendMessage(); 
       } 
     }); 
     } 

回答

0

可能这不是回答你使用的代码,但您可以通过使用delivery module使容易

双向文件传输对于通过Socket.IO的Node.js,请参见co de on Github Link

相关问题