WebSocket Windows服务侦听端口8080

Ale*_*lex 5 c# sockets windows-services websocket

我是Windows服务开发的新手,需要在C#中构建一个将在端口上侦听8080数据的数据,然后解析它.我发现有关的信息System.Net.WebSockets,System.Net.Sockets以及第三方库,如SuperSocket.有这个例子,但不确定我的Windows服务类的方法OnStart()和内容是什么OnStop().另一个例子是在这里,但是这也不能覆盖Windows服务明确.对于基本的Windows服务开发,有这篇MSDN文章.

我在想这个OnStart():

Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8080));
serverSocket.Listen(128);
serverSocket.BeginAccept(null, 0, OnAccept, null);
Run Code Online (Sandbox Code Playgroud)

我会把什么投入OnStop()

进入的数据流不需要任何身份验证.我还需要握手吗?

非常感谢您的帮助.

Mav*_*rik 2

由于您希望使用端口 8080 作为侦听端口,因此我假设您本质上是在处理 http 流量。您应该查看OWIN 自托管Web 服务器,而不是使用原始套接字。另外,NancyFx也可以工作。

OnStop()当 Windows 尝试停止该服务时调用。您可以将其视为您的 Dispose for 服务。OnStart()类似地,您的函数也用于进行初始化。我建议您研究一下非常好的TopShelf库来开始编写 Windows 服务。