我在我的socket.io客户端中收到io notdefend的错误

时间:2019-04-01 06:56:13

标签: javascript jquery html node.js socket.io

这是我的服务器端代码,用于创建与套接字的连接。我正在使用node.js代码,并在其中使用socket.io。

// ...
providers: [
    // ...
    { provide: HTTP_INTERCEPTORS, useClass: AddHeaderInterceptor, multi: true },
    //...
]

这是我的客户端代码,我使用普通的javascript作为客户端,并且我使用的是2.1.1版本的socket.io,我得到的是io notdefend错误,我对socket.io非常陌生,请帮助我这个一个。

const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
const port = process.env.PORT || 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);


io.on('connection', (socket) => {
  console.log('New user connected');


})

2 个答案:

答案 0 :(得分:4)

您的第一个脚本(使用io的脚本)在其他脚本(jQuery和Socket脚本)之前运行。像这样移动脚本:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

<script src="http://localhost:3000/socket.io/socket.io.js"></script>

<script>
  $(document).ready(function() {
    var socket = io('http://localhost:3000');
    console.log("Socket connected" + socket.connected);

    socket.on('notification', function(value) {
      //insert your code here
    });
  });
</script>

答案 1 :(得分:0)

由于我是Web开发的新手,这可能是错误的,但是我会尝试将您的脚本放在您导入socket.io.js的脚本下方

在函数中,您正在调用io,但是在调用它之前,它似乎没有被声明。

希望这行得通。