bashis Posted July 13, 2021 Posted July 13, 2021 I've heard many times that it is possible to use Blazor for the UI, but I'm struggling to get it working. I'm trying to create a Blazor WebAssembly app and run it under CEF. From what I see during the initialization Blazor tries to fetch a configuration file blazor.boot.json and to do that it uses the same URL root as the one that is currently running in CEF. However the fetch operation does not support the package:// protocol that is used when the browser window is created and this results in the following error: blazor.webassembly.js:1 Fetch API cannot load package://package_name/wwwroot/_framework/blazor.boot.json. URL scheme "package" is not supported. (anonymous) @ blazor.webassembly.js:1 blazor.webassembly.js:1 TypeError: Failed to fetch at Function.<anonymous> (blazor.webassembly.js:1) at blazor.webassembly.js:1 at Object.next (blazor.webassembly.js:1) at blazor.webassembly.js:1 at new Promise (<anonymous>) at blazor.webassembly.js:1 at Function.initAsync (blazor.webassembly.js:1) at blazor.webassembly.js:1 at blazor.webassembly.js:1 at Object.next (blazor.webassembly.js:1) Is there any workaround for this issue? Is Blazor actually supported?
Sheepfitter Posted January 4, 2022 Posted January 4, 2022 @bashis Finally, I found a solution for this problem. You have two options, both requires hosting a server for client-side files: Use Blazor Server Blazor Server is the perfect solution, because you can easily share data between connections (clients/players). The biggest disadvantage is performance. If your UI use events like OnMouseMove, you are in trouble, because of network delay. Use Blazor WebAssembly This is tricky. You can't just copy published files to client_packages, because Blazor don't support non-http protocols (package://). You have to publish your Blazor app on dedicated server and "redirect" client to your app. If you would like to connect your Blazor app directly to RageMP server, you can do that using SignalR. P.S .NET 6.0 for now doesn't work. Use .NET 5.0 instead. I tested it on my local PC with IIS installed. It should work with Apache, but I can't confirm this.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now