node.js - JADE 文件未加载 socket.io
问题描述
我知道这可能是一个愚蠢的问题,但我正在学习如何使用 WebSockets,但我遇到了麻烦;这是我连接套接字服务器的地方
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(global.server);
server.listen(8080, function() {
console.log('Servidor corriendo en http://localhost:8080');
});
io.on('connection', function(socket) {
console.log('Un cliente se ha conectado');
socket.emit('messages', messages);
});
它在终端中工作我得到正确的消息,在客户端视图中我有类似的东西;
extends ../layout
block content
script(src="http://localhost:3000/socket.io/socket.io.js")
script(src='/javascripts/Enfermero/main.js')
还有那个观点的js....
var socket = io.connect('http://localhost:8080', { 'forceNew': true });
socket.on('messages', function(data) {
console.log(data);
});
在资源管理器上,我总是得到:
GET http://localhost:3000/socket.io/socket.io.js net::ERR_ABORTED 404 (Not Found)
main.js:1 Uncaught ReferenceError: io is not defined
at main.js:1
(anonymous) @ main.js:1
你们能帮帮我吗?我做了一些研究,但我有点不明白发生了什么。
解决方案
而不是使用script(src="http://localhost:3000/socket.io/socket.io.js")
尝试使用参考路径script(src="<path to socket.io>/socket.io/socket.io.js")
另外,我认为它io
是通过以下方式初始化的:
socket = io('http://localhost');
socket.connect();
在此处参考客户端 api 的文档:https ://socket.io/docs/client-api/
希望这可以帮助 :)
推荐阅读
- amazon-web-services - 使用 Cloudformation 配置 Glacier Deep Archive 转换规则
- windows - Vagrant ssh 进入 Windows 10 来宾:PATH 不包括使用 Chocolatey 配置的工具
- cql - 在普通(非聚类)列上获得与某些标准匹配的前 N 行的最有效方法
- c# - 如何在 DataGrid 中显示一定数量的行?(C#/WPF)
- python - 聚类数据子组中的行
- sql-server - 在 SQL Server 的 ForXMLPath 查询中包含文本
- angular - Angular Reactive Forms 从 Type 生成表单控件
- curl - curl 的 RESTconf 操作
- python - 使用 Fast.AI 查找学习率/训练时出现 BrokenPipeError
- kotlin - Kotlin Coroutines:Kotlin Job() 对象有多轻量级?我可以将完成的作业留在 HashMap 中吗?