socket.io,io 未定义(JS 错误)

     2023-04-18     35

关键词:

【中文标题】socket.io,io 未定义(JS 错误)【英文标题】:socket.io, io is not defined (JS Error) 【发布时间】:2011-08-03 22:25:59 【问题描述】:

我刚开始使用 socket.io,它在客户端页面上给出 JS 错误

io 未定义

如何解决这个问题?

【问题讨论】:

【参考方案1】:

您也可以使用Socket.io CDN:

<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>

【讨论】:

哇,我需要这样的东西。谢谢! 下来,发生了什么? 网址好像变了socket.io/blog/introducing-socket-io-1-0/#cdn-delivery【参考方案2】:

&lt;script src="http://yournodeserver/socket.io/socket.io.js"&gt;&lt;/script&gt; 放入您的代码中

【讨论】:

@Shawn 文件的顺序可能是问题所在。你的外部 js 文件应该在 socket.io.js 之后导入。 路径 /socket.io/ 到底在哪里?我在 socket.io 示例中随处可见,但在我的系统上找不到它...请帮助某人【参考方案3】:

我在使用 express 时遇到了同样的问题。即使将服务器:端口放在脚本中也行不通。服务器启动后,我会让套接字监听该端口,我猜这是错误的。将其更改为以下工作正常

var app = express();
app.set('port', process.env.PORT || 3000);
var server = http.createServer(app);
var io = require('socket.io').listen(server);
server.listen(app.get('port'));

在客户端我只包含脚本

 <script src="/socket.io/socket.io.js"></script>

【讨论】:

我会使用它而不是接受的答案,以便它在 localhost 和您拥有它的域上保持不变。另一个可以工作,但必须更改。 哈哈,这行得通。正如文档中所说的那样socket.io/get-started/chat【参考方案4】:

我有一个套接字应用程序,我的服务器(不是 CDN)在其中提供 socket.io.js 脚本。因此,虽然 Emmerman 说您需要在客户端 HTML 代码中包含脚本标记是正确的,但如果您的后端关闭,则不会加载资产。一种选择是编写一个客户端 JS 脚本,在尝试使用 socket.io 之前检查 io。如果它不存在(未定义/空),那么您可以有条件地显示其他内容,例如“服务器关闭”,或者在我的情况下,我将设置一个计时器,它会定期检查,直到服务器恢复。

[更新 2] 最终不得不包含脚本标签,检查 io 对象的存在并在 10 秒后执行 window.location.reload()(使用 setTimeout)(最终希望能找到脚本已加载,io 存在,之后我可以连接到套接字服务器。)

[更新] 我正在使用 ajax 调用加载脚本,而不是使用 html 脚本标记。然后使用计时器定期检查脚本是否会加载——最终它会在服务器恢复/重新启动时加载。 jQuery ref 动态加载 JS 脚本:http://api.jquery.com/jQuery.getScript/

【讨论】:

如果您不想从第三方域加载库,这是非常酷的解决方案。谢谢你分享这个。拯救了我的一天:)【参考方案5】:
<script src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>

这是要包含的最新版本的 socket.io。

【讨论】:

【参考方案6】:

您确保使用“服务器”而不是“应用程序”。

const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const 
    Server
 = require('socket.io');
const io = new Server(server);

app.get('/', (req, res) => 
    res.sendFile(__dirname + '/index.html')
);

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

app.listen(3000, () => 
    console.log('Listining on 3000');
); // wrong

server.listen(3000, () => 
    console.log('Listining on 3000');
); // correct

【讨论】:

【参考方案7】:

将您的客户端代码包装在 '$(document).ready()' 上,用于 jQuery 或其他类似库的函数。这样你就可以确保你的代码在加载库之后运行。

【讨论】:

【参考方案8】:

我必须这样做。 (对于客户。)

function setup() 
  var socket;
  socket = io.connect('http://localhost:3000');

/*
This solved my error.
*/

【讨论】:

【参考方案9】:

例如,如果您的服务器在端口 3000 上侦听并且您的 index.html 在 localhost:3000 上连接,那么它将无法在该端口上包含本地库。 要解决这个问题,您应该已经安装了一个普通的服务器,例如 xampp,并在您的页面中包含要从 xampp 提供的库的完整 url 例如://localhost/my-project/node_modules/socket.... 或者只是从cdn包含它 或使用 socket = io.connect('http://localhost:3000');并从普通服务器加载您的页面,例如 xampp

【讨论】:

【参考方案10】:

更改脚本文件的顺序,首先是库 socket.io,然后是你的脚本文件

<script src="/socket.io/socket.io.js"></script>
<script src="./js/your-script.js"></script>

【讨论】:

【参考方案11】:

http://socket.io/download/ - 最新cdn官方页面。

【讨论】:

Node.js - Socket.io:socket.request 未定义

】Node.js-Socket.io:socket.request未定义【英文标题】:Node.js-Socket.io:socket.requestundefined【发布时间】:2015-01-0408:05:29【问题描述】:我已经阅读了here,我可以在node.js中获取客户端的IPsocket.request.connection.remoteAddress例如:varsocket=io.list... 查看详情

socket.io 未定义并拒绝连接

】socket.io未定义并拒绝连接【英文标题】:socket.ioundefinedandrefusingconnection【发布时间】:2022-01-1418:03:17【问题描述】:我正在使用socket.io来显示一条消息,但是当我运行nodeserver.js时,它不会在控制台记录任何输出消息。我已附... 查看详情

Socket.IO - 要求未定义

】Socket.IO-要求未定义【英文标题】:Socket.IO-requireisnotdefined【发布时间】:2012-01-0209:01:18【问题描述】:我正在尝试让socket.io正常工作,但现在在Chrome中出现错误:UncaughtReferenceError:requireisnotdefinedclient.php:9UncaughtReferenceError:ioisnot... 查看详情

未捕获的类型错误:无法读取未定义 socket.io.client 的属性“sid”

】未捕获的类型错误:无法读取未定义socket.io.client的属性“sid”【英文标题】:UncaughtTypeError:Cannotreadproperty\'sid\'ofundefinedsocket.io.client【发布时间】:2021-02-2308:13:50【问题描述】:我在spfxreact应用程序中使用socket.io.client并在进行... 查看详情

angular-socket-io io 未定义

】angular-socket-ioio未定义【英文标题】:angular-socket-ioioisnotdefined【发布时间】:2016-01-2910:16:54【问题描述】:这里有一个建议:https://github.com/btford/angular-socket-io/issues/127确保你有socket.io客户端库:bowerinstallsocket.io-client--save这并没... 查看详情

尝试发出时,带有 Node.js 的 Socket.io 在路由文件中返回未定义

】尝试发出时,带有Node.js的Socket.io在路由文件中返回未定义【英文标题】:Socket.iowithNode.jsreturnsundefinedinroutefilewhentryingtoemit【发布时间】:2022-01-0204:27:58【问题描述】:我尝试使用socket.io从路由文件中发出数据,但当我调用路... 查看详情

socket.io - ReferenceError:未定义套接字

】socket.io-ReferenceError:未定义套接字【英文标题】:socket.io-ReferenceError:socketisnotdefined【发布时间】:2013-07-1009:32:00【问题描述】:我正在尝试编写一个简单的应用程序,它将我在文本区域中键入的每个字符镜像到div使用socket.io... 查看详情

Socket.IO 命名空间,调用未定义函数 .of()

】Socket.IO命名空间,调用未定义函数.of()【英文标题】:Socket.IOnamespace,calltoundefinedfunction.of()【发布时间】:2011-06-2501:17:42【问题描述】:我正在使用Node.JS0.4.8和Socket.IO0.7.2。我从他们的网站上复制了这段代码:varsocket=io.connect(\'h... 查看详情

express js 中的 Socket.io:Router.use 需要中间件功能但未定义

】expressjs中的Socket.io:Router.use需要中间件功能但未定义【英文标题】:Socket.ioinexpressjs:Router.userequiresmiddlewarefunctionbutgotundefined【发布时间】:2017-09-1412:10:13【问题描述】:我正在尝试在我的expressjs应用程序中集成socket.io(由expre... 查看详情

加载socket.io.js时Node.js“未捕获的语法错误:意外的令牌<”

】加载socket.io.js时Node.js“未捕获的语法错误:意外的令牌<”【英文标题】:Node.js"UncaughtSyntaxError:Unexpectedtoken<"whenloadingsocket.io.js【发布时间】:2014-07-1308:57:45【问题描述】:我有一个使用node.js和express框架测试socket.i... 查看详情

未找到 Socket.io.js(node.js + express + socket.io)

】未找到Socket.io.js(node.js+express+socket.io)【英文标题】:Socket.io.jsnotfound(node.js+express+socket.io)【发布时间】:2014-10-2022:06:51【问题描述】:我一直在检查其他相关答案,例如:node.js/socket.io/socket.io.jsnotfoundSocket.ionotbeingservedbyNode.j... 查看详情

将 socket.io-client 与 webpack 一起使用时未定义 global

】将socket.io-client与webpack一起使用时未定义global【英文标题】:globalisnotdefinedwhileusingsocket.io-clientwithwebpack【发布时间】:2018-10-0215:47:06【问题描述】:当我在我的ReactWeb应用程序中添加socket.io-client插件时出现以下错误。未捕获的... 查看详情

获取 http://localhost:3000/socket.io/socket.io.js 404(未找到)

】获取http://localhost:3000/socket.io/socket.io.js404(未找到)【英文标题】:GEThttp://localhost:3000/socket.io/socket.io.js404(NotFound)【发布时间】:2013-06-0314:25:27【问题描述】:我正在尝试将数据流式传输到浏览器。但是,我正在努力将其连接... 查看详情

ReferenceError:未定义套接字。套接字.io

】ReferenceError:未定义套接字。套接字.io【英文标题】:ReferenceError:socketisnotdefined.socket.io【发布时间】:2019-02-2002:22:45【问题描述】:socket.io中出现此错误//SERVER.JSvarexpress=require(\'express\');varapp=express();varbodyParser=require(\'body-parse 查看详情

如何解决 Socket.io 404(未找到)错误?

】如何解决Socket.io404(未找到)错误?【英文标题】:HowtoresolveaSocket.io404(NotFound)error?【发布时间】:2015-02-0805:11:43【问题描述】:我正在使用带有Express的Socket.io。在我的项目中,我有一个登录页面和一个主页。当我成功登录时... 查看详情

GET/socket io 未找到 404

】GET/socketio未找到404【英文标题】:GET/socketionotfound404【发布时间】:2022-01-2201:27:28【问题描述】:我正在关注套接字io文档虽然仍然出现错误polling-xhr.js:157GEThttp://localhost:3000/socket.io/?EIO=4&transport=polling&t=NtNlWd6404(未找到)... 查看详情

Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling

】Phaser.js中的Node.js和Socket.io未连接socket.io/?EIO=3&transport=polling【英文标题】:Node.jsandSocket.ioinPhaser.jsnotconnectingsocket.io/?EIO=3&transport=polling【发布时间】:2017-06-1022:16:31【问题描述】:我能够运行我的node.js服务器,我的phaser.j... 查看详情

GET http://js:port/socket.io/1/ 404 未找到

】GEThttp://js:port/socket.io/1/404未找到【英文标题】:GEThttp://js:port/socket.io/1/404notfound【发布时间】:2014-01-1606:24:47【问题描述】:Socket.io无法连接。这是我的服务器代码:functionchatserver()varexpress=require(\'express\'),app=express(),server=requir 查看详情