Socket.io聊天应用程序,也可以发送图像甚至文件

时间:2016-01-18 08:42:08

标签: javascript node.js encoding websocket socket.io

我最近对{{1}}项目感兴趣,我想知道是否有简单的方法可以发送图像甚至其他类型的文件,而无需使用其他库。我没有尝试将文件上传到服务器进行存储,我只想将其广播给当时在聊天室的人。所以代码应该是最小的。但是我在编码/解码内容时非常糟糕,所以一些示例代码会很棒。

1 个答案:

答案 0 :(得分:7)

我已经改编了Socket.io的官方聊天示例,并添加了通过base64编码发送文件/图像甚至视频的功能,您可以查看client.js和{{1}中的源代码},以下是最相关的部分,希望它对您有所帮助。

在客户端:

index.js

在服务器端:

$('#uploadfile').bind('change', function(e){
    var data = e.originalEvent.target.files[0];
    readThenSendFile(data);      
});

function readThenSendFile(data){

    var reader = new FileReader();
    reader.onload = function(evt){
        var msg ={};
        msg.username = username;
        msg.file = evt.target.result;
        msg.fileName = data.name;
        socket.emit('base64 file', msg);
    };
    reader.readAsDataURL(data);
}

这是项目:

https://github.com/Arch1tect/Chatbox