node.js socket.io不广播到连接的客户端

我有一个从程序接收消息的应用程序。 这个应用程序接收消息,并将消息广播到连接的客户端。 现在我在控制台和控制台上显示消息,这个接收器应用程序正在接收完美。 但是,在客户端(html页面),它没有被广播。 当我打开本地主机/结果,什么都不显示。 我究竟做错了什么?

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var EventHubClient = require('azure-event-hubs').Client; var connectionString = 'connection string'; const bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: true })) app.use(bodyParser.json()) var printError = function (err) { console.log(err.message); }; var result; var printMessage = function (message) { console.log('Message received: '); result = JSON.stringify(message.body); obj = JSON.parse(result); console.log('message:' + result) console.log(''); }; count =0; app.get('/result', function(req, res){ res.sendFile(__dirname + '/result.html'); }); io.on('connection', function(socket){ console.log('user connected'); socket.on('chat message', function(msg){ io.emit('chat message', result); console.log("This is id in the sock' section" + check_id); }); socket.on('disconnect', function(){ console.log('user disconnected'); socket.removeAllListeners('disconnect'); io.removeAllListeners('connection'); }); }); var client = EventHubClient.fromConnectionString(connectionString); client.open() .then(client.getPartitionIds.bind(client)) .then(function (partitionIds) { return partitionIds.map(function (partitionId) { return client.createReceiver('$Default', partitionId, { 'startAfterTime' : Date.now()}).then(function(receiver) { console.log('Created partition receiver: ' + partitionId) receiver.on('errorReceived', printError); receiver.on('message', printMessage); }); }); }) .catch(printError); http.listen(3000, function(){ console.log('listening on *:3000'); }); 

result.html

 <html> <head><title>Hello world</title></head> <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); // socket.emit('chat message') socket.on('chat message',function(msg){ socket.emit('chat message',msg); document.write('hello world'); document.write(msg); }); </script> </html> 

我会直接从printMessage函数发送它:

 function printMessage(message) { result = JSON.stringify(message.body); console.log('[message]',result); io.sockets.emit('chat message',result); } 

并记住要修改你的客户端( result.html ),这样它就不会发生无限循环:

 <script> var socket=io(); socket.on('chat message',function(msg){ console.log(msg); //alert(msg); document.write(msg); }); </script> 

编辑:

你如何包含socket.io.js脚本?

 <script src="/socket.io/socket.io.js"></script> 

尝试并指定服务器地址socket.connect('localhost:3000');

我为你做了这个工作例子


重新 编辑:重新为你的工作示例,这次我添加了一个客户端 – 服务器的排放反弹到所有连接的客户端 。