首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.io,在控制台上未定义io。

socket.io,在控制台上未定义io。
EN

Stack Overflow用户
提问于 2019-06-06 11:06:48
回答 1查看 135关注 0票数 0

我正在使用套接字设置一个基本的聊天应用程序,但在编程的最初阶段,我在客户端得到了一个错误:“io未定义”。

我尝试过包括CDN和添加,但没有成功。

代码语言:javascript
复制
<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

代码语言:javascript
复制
let socket = io();

console.log("socket formed on " + socket.id)

server.js

代码语言:javascript
复制
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未定义”。

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 11:11:34

我认为您应该检查文档是否已加载,下面的代码如下:

代码语言:javascript
复制
// 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:

代码语言:javascript
复制
$(document).ready(function(){
    /** Your code here */
})

您正在尝试在脚本加载之前访问它,所以只有在加载完jQuery库和socket.io.js库之后,上面的代码才能帮助您运行脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56476322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档