使用脚本标记Laravel视图中的文件中定义的类

时间:2018-01-13 16:43:44

标签: javascript node.js laravel socket.io

我尝试在laravel中开发一个项目,除其他外,我必须使用socket.io。 我在自己的文件中实现了一个类作为socket.io-client的包装器。 我在laravel视图中导入该文件。

我想在laravel视图中的脚本标记中实例化一个套接字对象,以便能够从该视图传递变量,但是我收到此错误:未捕获的ReferenceError:未定义套接字

问题是,我可以在脚本标签中使用,这是在导入文件中定义的类吗?

LE:提供的代码

Laravel视图

@section('scripts')
    <script src="{{ asset('js/diagram.js') }}"></script>
    <script src="{{ asset('js/socket.js') }}"></script>
    <script>
        let socket = new Socket("http://localhost:8080", {!! $id !!});
        socket.connect();
    </script>
@endsection

套接字包装(只是其中的一部分)

import io from 'socket.io-client';

class Socket 
{
    constructor(strURL, diagramId) 
    {
        this.strURL = strURL;
        this.diagramId = diagramId;
    }

    connect()
    {
        this.socket = io.connect(this.strURL);
        // Send the diagram id to include socket into a room
        this.socket.emit('diagram', this.diagramId)
    }
}

1 个答案:

答案 0 :(得分:0)

当js尝试执行内联脚本

时,似乎尚未加载socket.js