Клиентская сторона не может найти io - PullRequest
1 голос
/ 30 мая 2019

Я написал простую программу, которая имеет потребителя nodejs, потребляет данные от kafka, а затем передает данные с помощью socket.io клиенту, чтобы я мог отобразить данные с помощью d3.

Однако я продолжаю сталкиваться с этой ошибкой на стороне клиента, что он не может найти IO.

Я пытался использовать cdn и другие альтернативы в моем index.html, однако это не привело ни к какому прогрессу.

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 1010 *

 //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>

1 Ответ

0 голосов
/ 30 мая 2019

Ваша версия выглядит несколько устаревшей, а более старые версии Socket.IO имеют только версию сервера и клиента, которые раньше были разделены (socket.io-client.js раньше был отдельным пакетом).

Убедитесь, что вы используете правильную версию Socket.IO (вы можете получить от https://cdnjs.com/libraries/socket.io)

Как и так:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>

Также убедитесь, что вы используете этот формат:

<script>
  var socket = io('my.ip'); // NOT io.connect();
  ... // Rest of code
</script>

Надеюсь, я вам помог!

...