我不是程序员...我可以在node.js中创建一个websocket应用程序,它可以将图像发送到borwser,但是我的图像很少,有时会更改。前任。图片1.jpg图像2.jpg图片3.jpg图像4.jpg我需要在浏览器中不断更新此图像。
我的应用程序现在只能处理一个图像,无需更新。完整的项目是听到的:https://github.com/akoscomp/imgstream我使用以下代码发布图像:
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');
}
});
}
});
您可以在 https://github.com/yanalavishnu/imgstream 查看完整的项目