使用WebsocketSharp管理用户



我正在开发WebsocketSharp,遇到了一些困难:

  1. 是否有基于ASP.NET WebAPI上的身份验证系统,因为我计划在ASP.NET WebAPI中托管WebsocketSharp服务器。

    更新我很清楚这一部分。它们只是在同一台服务器上运行的两个独立的应用程序。所以没有交互来回

  2. 如何获取发件人的ID,因为我在github上的README.md文件中没有看到任何指令
  3. 如何将消息发送给特定用户,或者无论如何,发送给特定的connection ID。他们给出的唯一示例是Sessions.Broadcast其发送到所有连接的客户端

Websocketsharp github网站:https://github.com/sta/websocket-sharp

关于问题2和3,websocket sharp已经开箱即用地支持了这一点(我使用的是1.0.3-rc11版本)

在从WebSocketBehavior继承的自定义套接字类中,您可以访问ID属性,该属性提供表示当前套接字连接的guid字符串。通过覆盖OnOpen/OnClose/OnMessage处理程序,您可以找到适当的交互点。

您还可以访问接受字符串或字节数组的Send方法。将发送到当前连接。

如果需要从其他代码中调用套接字,则需要获得套接字类的实例。从那里,您可以使用上面提到的Session对象。它有一个Broadcast和一个SendTo方法。后者获取一个id,该id将导致消息仅针对该连接。

这不会解决所有问题。如果您需要ID和用户之间的映射,那么您需要用其他方式来处理,比如vtortola建议的方式。但如果你真的需要,我建议你改用SignalR,它从一开始就内置了这一点。那会让你的生活更轻松。

即使在同一进程中托管WebSocketSharp,也无法在ASP.NET中集成它。它在他自己的TCP端口上工作,不知道所有用于身份验证的ASP.NET/IIIS HTTP模块。

因此,您将不得不自己对cookies/headers进行一些手动操作,比如打开所使用的authcookie或header并自己进行评估。

对于你的第二个和第三个问题,有很多方法可以解决。它是通用编程,而不是任何特定的websocket。看看这个使用WebSockets的聊天示例,它可能会给你一些想法。

相关内容

  • 没有找到相关文章

最新更新