我只是在寻找DotVVM,以替换另一个框架,在该框架中,我使用websocket来接收来自websocket服务器的消息,以动态更改网站的内容。因此,我尝试在DotVVM项目中执行相同的操作。 我从 DotVVM Web应用程序-模板开始,其中包括示例CRUD页面。
为简单起见,我将WebSocketSharp用作websocket-client库。
我将此添加到了 defaul.dothtml :
<dot:Literal Text="{value: SocketTest}" />
,并将其保存到 DefaultViewModel.cs :
public WebSocket Ws;
public DefaultViewModel(StudentService studentService)
{
_studentService = studentService;
if (Ws == null)
{
Ws = new WebSocket("ws://someserver:3000?id=someid");
Ws.OnMessage += (sender, e) =>
{
//SocketTest = e.Data;
SocketTest = DateTime.Now.ToString();
};
Ws.Connect();
System.Threading.Thread.Sleep(5000);
}
}
该网站仅更新一次,但仅在我添加了Sleep(5000)之后才更新。在调试中,我可以看到SocketTest属性正在通过websocket更新,但是不会移植到网站上。
很明显,出了什么问题。
如何正确实施websocket-client?