这可能是我遇到过的最令人沮丧的事情,可悲的是,这可能是我做的一些愚蠢的事情。
以下是我正在使用的三件事的链接:
这是我的问题:我的网站不断地走这条路线:http://192.168.10.10:6001/socket.io
. 我不知道它为什么会走这条路线,因为我没有socket.io
在我的代码中的任何地方定义该部分。这是我在 bootstrap.js 中用于实例化 Laravel Echo 的代码。
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://192.168.10.10:6001'
});
这是我的 socket.js 文件(node.js)中的代码:
var echo = require('laravel-echo-server');
var options = {
authHost: 'http://192.168.10.10',
authPath: '/broadcasting/auth',
host: 'http://192.168.10.10',
port: 6001
};
echo.run(options);
到目前为止,这里没有任何可能出错的地方。这是链接回cdn的错误消息。奇怪的是,更改window.Echo
主机会更改域,但我不知道如何更改 socket.io 部分。
这让你想知道,它是否在 Socket.io 文件的某个地方进行了硬编码?这是我第一次使用 Socket.io,所以我无从得知。也许在我放入 CDN 之后,我需要做一些额外的设置?Laravel 文档说要做的就是添加脚本标签,而 Laravel 以拥有出色的文档而闻名。
任何专业知识将不胜感激,请赐教!
更新
MMMTroy 建议我在 vm 中启动我的 socket.io 服务器,而不是我的普通计算机。这很有意义,并且可能是问题所在。但现在我遇到了另一个问题。之前,我只是启动服务器(在我的普通计算机上),它会说:EchoServer: "Server running at http://192.168.10.10:6001"
. 现在,当我尝试在我的 vm 上启动服务器时,它返回此错误:
/home/vagrant/Projects/Blog/node_modules/laravel-echo-server/dist/echo-server.js:159
emitPresenceEvents(socket, channel, members, member, action = null) {
^
SyntaxError: Unexpected token =
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/vagrant/Projects/Blog/node_modules/laravel-echo-server/dist/index.js:2:23)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
我该怎么办这个错误?我查看了 laravel-echo-server emitPresenceEvents 函数,但我不知道发生了什么。
谢谢。
固定的!
我终于修复了它,它与节点版本有关。我将宅基地节点更新到最新版本并修复了它。