我完全被困在这一个,运行的东西尝试。
Visual Studio 2022.使用项目模板创建演示Blazor应用程序。在本地和发布到Azure时都可以正常运行。
我使用http://sta.github.io/websocket-sharp/添加WebSocket服务器和客户端。
我在当地都做得很好。
在我的一个剃须刀服务.cs文件中,我有:
m_WSServer = new WebSocketServer(3333, false);
m_WSServer.AddWebSocketService<Laputa>("/" + "Laputa");
在我的一个客户端.razor文件中,我有:
m_WSClient = new WebSocket("ws://11.22.33.44:3333/Laputa");
就像我说的,在当地一切都很好。
显然,它在发布到Azure时不会按原样运行。我在出版前做了两个修改:
在服务中,我现在有:
m_WSServer = new WebSocketServer(3333, true);
m_WSServer.AddWebSocketService<Laputa>("/" + "Laputa");
(true使用ssl的参数,因为Azure必须使用ssl)
在client .razor文件中,我有:
m_WSClient = new WebSocket("wss://mywebappname.azurewebsites.net:3333/Laputa");
所以用wss代替了ws。
从我所看到的,WebSocket服务器正在运行,但当我调用WebSocket客户端的connect方法时,它很快就从WebSocket服务器接收到一个onClose事件。
有人能看出我的错误吗?我唯一能想到的是我的WebSocket客户端连接的URL可能是错误的?例如“wss:mywebappname.azurewebsites.net:3333/Laputa“,但我已经尝试了许多变化。
(我应该补充一下,我已经在我的Azure应用程序上启用了websockets)。
谢谢.
1条答案
按热度按时间k4ymrczo1#
我尝试了你分享的相同的示例代码,我可以在本地运行它。
:3333
)。这里我使用自定义域,所以我进口证书.通过在创建
WebSocketServer
时将第二个参数设置为true
,您将启用SSL,它允许您使用wss://
协议进行安全的WebSocket通信。这是安全WebSocket连接的正确方法。由于自定义页面,请使用高级计划配置您的Web应用程序。