我正在使用套接字设置一个基本的聊天应用程序,但是在编程的初始阶段,我会收到此错误:客户端上“未定义io”。
我尝试过添加CDN并添加 , 但没有成功。
HTML
<head>
<script src="jquery-3.2.1.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="script.js"></script>
</head>
script.js
let socket = io();
console.log("socket formed on " + socket.id)
server.js
const express = require('express')
const path = require('path')
const socketio = require('socket.io')
const http = require('http')
const app = express();
const server = http.createServer(app)
const io = socketio(server)
app.use('/', express.static(path.join(__dirname, 'frontend')))
io.on('connection', (socket) => {
console.log("New socket formed fksrom " + socket.id)
})
server.listen(2345, () => console.log('website open on http://localhost:2345'))
我希望套接字ID在控制台中显示, 但在控制台上它显示“未定义io”。
答案 0 :(得分:0)
我认为您应该检查文档是否已加载,所以下面是以下代码:
// Pure Javascript
if(document.readyState === "complete") {
//Already loaded!
}
else {
//Add onload or DOMContentLoaded event listeners here: for example,
window.addEventListener("onload", function () {/* Move your code here */}, false);
//or
//document.addEventListener("DOMContentLoaded", function () {/* code */}, false);
}
由于您已经拥有jQuery:
$(document).ready(function(){
/** Your code here */
})
您正在尝试在加载脚本之前访问脚本,因此上述代码仅在完成加载jQuery库和socket.io.js库后,才可以帮助您运行脚本。