2016-09-01 5 views
1

У меня возникла проблема с получением значений, испускаемых socket.io, я не понимаю, где проблема. Здесь отправляю код, пожалуйста, помогите мне решить проблему.Socket.io не испуская значение

var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
var bodyParser = require('body-parser'); 
var path = require('path'); 
var fs = require('fs'); 
var spawnSync = require('child_process').spawnSync; 

.... 

app.post('/loadImage',upload.any(),function(req, res) { 
     fs.readFile('/home/pathtofile/file.json','utf8',function(err,data){ 
       if(err){ 
        console.log(err); 
       }else{ 
        //console.log(data); 
        var precjson = JSON.parse(data); 
        var loaded_filename = precjson.Filename; 
        io.emit('emitfilename',{loaded_filename}); 
       } 
      }) 
} 
http.listen(8080,'0.0.0.0',function(){ 
    console.log('listening on 8080'); 
}) 

И вот мой код, где я получаю излучаемое значение:

<script type="text/javascript"> 
    var socket = io.connect('http://localhost:8080'); 

     socket.on('emitfilename',function(data){ 
     //console.log(data); 
     var li = document.createElement('li'); 
     var filename = document.createElement('h4'); 

     filename.textContent = 'File Name:' + data.filename; 
     li.appendChild(filename); 

     document.getElementById('filenameoutput').appendChild(li); 
    }); 
</script> 

Вместо того, чтобы имя файла, я получаю неопределенные. Кто-нибудь может мне помочь, пожалуйста.

ответ

1

Вы не можете использовать переменную «io» для испускания данных. Вы можете использовать текущий сокет клиента, который просто подключен для передачи данных:

io.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

Или использовать io.sockets испускать ко всем разъемам

io.sockets.emit('users_count', clients); 

Надежда это решить вашу проблему! Благодаря !

+0

Привет, спасибо за ответ. Теперь я могу получать данные на консоли браузера. Но я не могу отображать его в браузере. Я редактировал свой код. не могли бы вы мне помочь. – naik3

+0

Последняя часть моего кода, где я получаю значения от сервера. и пытается отобразить в браузере – naik3

+0

Вот мой идентификатор элемента html, где я пытаюсь напечатать значение. ' filename' – naik3

Смежные вопросы