【问题标题】:JADE file is not loading socket.ioJADE 文件未加载 socket.io
【发布时间】:2018-10-02 05:15:18
【问题描述】:

我知道这可能是一个愚蠢的问题,但我正在学习如何使用 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

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

【问题讨论】:

    标签: node.js websocket socket.io


    【解决方案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/

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      只需使用script(src="/socket.io/socket.io.js"),socket.io.js 位于node_modules/socket.io-client,因此应用程序知道路径。

      【讨论】:

      • ,将 /node_modules/socket.io-client/dist 中的 soket.io.js 复制到您的公共文件夹,然后从您的页面中引用它
      猜你喜欢
      • 1970-01-01
      • 2018-03-27
      • 2013-10-19
      • 2015-10-18
      • 2021-11-05
      • 1970-01-01
      • 2016-03-29
      • 2020-11-12
      相关资源
      最近更新 更多