通过node.js实现的websocket接收和更新图像

通过node.js实现的websocket接收和更新图像,node.js,websocket,Node.js,Websocket,我不是程序员。。。 我可以在node.js中创建一个websocket应用程序,它可以向borwser发送一个图像,但是我会有一些图像,有时会发生变化。 前任。 图1.jpg 图像2.jpg 图像3.jpg 图像4.jpg 我需要在浏览器中不断更新这些图像 我的应用程序现在只能处理一个图像,无需更新。 整个项目包括: 我使用以下代码发布图像: io.sockets.on('connection', function(socket){ fs.readFile(__dirname + '/image

我不是程序员。。。 我可以在node.js中创建一个websocket应用程序,它可以向borwser发送一个图像,但是我会有一些图像,有时会发生变化。 前任。 图1.jpg 图像2.jpg 图像3.jpg 图像4.jpg 我需要在浏览器中不断更新这些图像

我的应用程序现在只能处理一个图像,无需更新。 整个项目包括: 我使用以下代码发布图像:

io.sockets.on('connection', function(socket){
fs.readFile(__dirname + '/image.jpg', function(err, buf){
    //it's impossible to ebed binary data
    socket.emit('image', { image: true, buffer: buf.toString('base64') });
    console.log('image file is initialized: ' + __dirname + '/image.jpg');
});});
我可以检查文件更新,但无法在浏览器上自动更新:

   var watch = require('node-watch');
watch('image.jpg', function(evt, filename) {
  console.log(filename, ' changed.');
});

请帮助我在borwser中自动更新图像。之后,我可能可以将该代码应用于许多图像。

您可以使用以下代码发送更改后的图像

io.sockets.on('connection', function(socket) {
  connections.push(socket);
  console.log('Connected: %s sockets connected', connections.length);

  // Diconnect
  socket.on('disconnect', function(data) {
    connections.splice(connections.indexOf(socket), 1);
    console.log('Disconnected %s sockets connected', connections.length);
  });

  fs.readFile(__dirname + '/image.jpg', function(err, buf) {
    //it's impossible to ebed binary data
    socket.emit('image', { image: true, buffer: buf.toString('base64') });
    console.log('image file is initialized: ' + __dirname + '/image.jpg');
  });
});


var watch = require('node-watch');

watch('image.jpg', function(evt, filename) {
  if (evt === 'update') {
    fs.readFile(__dirname + '/image.jpg', function(err, buf) {
      for (var i = 0; i < connections.length; i++) {
        //it's impossible to ebed binary data
        connections[i].emit('image', { image: true, buffer: buf.toString('base64') });
        console.log('image file is initialized: ' + __dirname + '/image.jpg');
      }
    });
  }
});
io.sockets.on('connection',函数(socket){
连接。推(插座);
console.log('Connected:%s sockets Connected',connections.length);
//双向连接
socket.on('disconnect',函数(数据){
连接件.接头(连接件.索引(插座),1);
console.log('断开连接的%s套接字',连接.长度);
});
readFile(uuu dirname+'/image.jpg',函数(err,buf){
//不可能对二进制数据进行ebed
emit('image',{image:true,buffer:buf.toString('base64')});
log('图像文件已初始化:'+\uu dirname+'/image.jpg');
});
});
var-watch=require('node-watch');
watch('image.jpg',函数(evt,文件名){
如果(evt==‘更新’){
readFile(uuu dirname+'/image.jpg',函数(err,buf){
对于(变量i=0;i

您可以在

查看完整的项目。我可以为多个文件编写代码,现在我可以显示自定义数量的图像。