我编写了一个简单的程序,该程序具有一个nodejs使用者,使用来自kafka的数据,然后使用socket.io将数据传输到客户端,以便可以使用d3呈现数据。
但是我一直在客户端上遇到找不到它io的错误。
我已经尝试在index.html中使用CDN和其他替代方法,但是并没有取得任何进展。
Consumer.js
var options = {
fromOffset: 'latest'
};
var express = require('express');
var router = express.Router();
// Kafka-node initilizations.
var kafka = require('kafka-node'),
Consumer = kafka.Consumer,
client = new kafka.KafkaClient(),
consumer = new Consumer(
client,
[
{ topic: 'trial1', partition: 0 }
],
[
{
autoCommit: false
},
options =
{
fromOffset: 'latest'
}
]
);
consumer.on('message', function (message) {
router.get('/', function(req, res, next) {
res.render('index', {title: 'Test', condition: false});
});
console.log(message.value);
});
// Display error messages if any.
consumer.on('error', function (err)
{
console.log('ERROR' + err.toString());
});
Client.js
//init socket
var socket = io();
//on message call update
socket.on('message', function(message){
console.log(message)
});
index.html
<html>
<head>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
</head>
<body>
<script>
var socket = io.connect();
</script>
<div>This is our socket.html file</div>
</body>
</html>
答案 0 :(得分:0)
您的代码相当混乱,但是我认为这是问题所在吗?
您的问题似乎使用不正确。
参见此处:https://socket.io/docs/client-api/
这是实际的解决方法...
<script>
var socket = io('my.ip'); // NOT io.connect();
... // Rest of code
</script>
这似乎是问题所在。希望我能帮上忙。