发现问题
最近在用blazor server对接OpenAI的api,开发自己的ChatGPT网页,这边设计的是聊天内容存储在浏览器的localstorage里面,每次打开网页的时候获取聊天记里并渲染界面
在开发和使用期间,偶发的会进不进去网站,也没发现有报错,最后清理浏览器缓存解决了问题。
最近这两天使用的比较频繁,发现这个问题出现的概率有点高,最后定位下问题,发现是聊天记录获取的时候出现的问题,在Blazor中调用js的获取数据方法时程序就挂起了,没有继续往下执行,刚开始怀疑是不是存储方法或者json序列化的问题,换了写法,也不能解决问题
解决问题
最后在aspnetcore的github仓库中找到了这条issue
localStorage.getItem errors with complex objects
有网友在下面回复或许是超出了 SignalR 消息大小限制
,想想也是这么回事,Blazor读取localstorage的时候会将信息通过SignalR发送到服务端,如果大小超过限制那么这个过程就没法完成
立马去翻阅官方文档,修改Blazor Server的SignalR配置,增加了消息大小MaximumReceiveMessageSize
的限制,解决问题
修改代码示例:
- builder.Services.AddServerSideBlazor()
- .AddHubOptions( op =>
- op.MaximumReceiveMessageSize = 100*1024*1024 //10M
- );
get到了,不明觉厉
以后会开源吗
已经开源了一个初版的框架
https://github.com/mr-wixy/ChaTai
你写得非常清晰明了,让我很容易理解你的观点。
你写得非常清晰明了,让我很容易理解你的观点。