我在socket.io客户端中得到io not defiend错误

问题描述 投票:1回答:2

这是我的服务器端代码,用于创建与socket的连接。我正在使用node.js代码并使用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');


})

这是我的客户端代码我使用普通的javascript作为客户端,我使用2.1.1版本的socket.io,我得到io不是defiend错误,我是socket.io非常新的请帮助我这一个。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">

  </head>
  <body>

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


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



     </body>
</html>
javascript jquery html node.js socket.io
2个回答
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>

0
投票

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

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

希望这有效。

© www.soinside.com 2019 - 2024. All rights reserved.