JADE文件未加载socket.io

时间:2018-10-02 05:15:18

标签: node.js websocket 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

你们能帮我吗? 我做了一些研究,但我有点不明白发生了什么。

2 个答案:

答案 0 :(得分:1)

仅使用script(src="/socket.io/socket.io.js"),socket.io.js位于node_modules/socket.io-client中,因此应用可以知道该路径。

答案 1 :(得分:0)

不要使用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/

希望这会有所帮助:)