相关疑难解决方法(0)

Websocket服务器:从不调用Web套接字上的onopen函数

我正在尝试实现一个C#Web套接字服务器,但它给了我一些麻烦.我正在运行一个Web服务器(ASP.NET)来托管带有javascript的页面,而Web套接字服务器则是作为C#控制台应用程序实现的.

我能够检测来自客户端的连接尝试(运行javascript的chrome)以及从客户端检索握手.但是客户端似乎不接受我发回的握手(onopenWeb套接字上的函数永远不会被调用).

我一直在阅读The Web Socket协议,我看不出我做错了什么.下面是一些服务器代码:

Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8181);
listener.Bind(ep);
listener.Listen(100);
Console.WriteLine("Wainting for connection...");
Socket socketForClient = listener.Accept();
if (socketForClient.Connected)
{
    Console.WriteLine("Client connected");
    NetworkStream networkStream = new NetworkStream(socketForClient);
    System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream);
    System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream);

    //read handshake from client:
    Console.WriteLine("HANDSHAKING...");
    char[] shake = new char[255];
    streamReader.Read(shake, 0, 255);

    string handshake =
       "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" +
       "Upgrade: WebSocket\r\n" +
       "Connection: Upgrade\r\n" + …
Run Code Online (Sandbox Code Playgroud)

c# websocket

61
推荐指数
2
解决办法
7万
查看次数

C#HTML5 Websocket服务器

我正在尝试创建一个C#Websocket服务器,但我似乎并没有让它工作.我现在有一台接受TCPClient的服务器,从客户端接收HTTP请求并尝试发回HTTP响应,以便完成HTML5 WebSocket握手.

我相信服务器发送给客户端的握手有问题.我阅读了草案(Websocket 76草案),其中指出在握手结束时必须给出给出的两个键的响应.此响应由服务器计算.

这是我的代码:

static void Main(string[] args)
    {
        int port = 8181;
        IPAddress localAddr = IPAddress.Loopback;

        TcpListener server = new TcpListener(localAddr, port);
        server.Start();

        // Buffer for reading data
        Byte[] receivedBytes = new Byte[256];
        String data = null;

        // Enter the listening loop.
        while (true)
        {
            Console.WriteLine("Waiting for a connection...");

            // Perform a blocking call to accept requests.
            // You could also user server.AcceptSocket() here.
            TcpClient client = server.AcceptTcpClient();
            Console.WriteLine("Connected!\n");

            data = null;

            // Get a stream …
Run Code Online (Sandbox Code Playgroud)

c# websocket

8
推荐指数
3
解决办法
4万
查看次数

Google跟踪代码管理器服务器端跟踪.NET

我们需要从服务器端从.Net(C#)应用程序推送数据层,触发事件等。

Google跟踪代码管理器具有JavaScript,Android和iOS SDK。它还具有REST API,但是此API仅允许管理容器,标签和事件,而不能跟踪它们。

那么有可能对GTM实施服务器端跟踪吗?似乎应该是因为存在用于移动设备的SDK,并且应该没有太大区别。

如果可能的话,请告诉我们如何并且可能存在针对该API的API或针对.Net的SDK已经存在或计划在将来进行。也许我们必须将数据直接推送到Google Analytics(分析)和其他端点?如我所见,JavaScript SDK将数据直接从页面推送到GA。

c# asp.net-mvc google-analytics asp.net-web-api google-tag-manager

5
推荐指数
1
解决办法
2503
查看次数

WebSocket Windows服务侦听端口8080

我是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()

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

非常感谢您的帮助.

c# sockets windows-services websocket

5
推荐指数
1
解决办法
827
查看次数

Websockets - 断开服务器消息

我是 Websockets 的新手,正在寻找使用 WS 和 c# 控制台应用程序的工作示例。我遇到了这个,但我已经遇到了问题。当服务器向客户端发送消息时,连接似乎已关闭。我不确定,但我认为握手没问题。这是一个代码:

服务器:

using System;
using System.Net.Sockets;
using System.Net;
using System.Security.Cryptography;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
        static private string guid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";

        static void Main(string[] args)
        {
            serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8080));
            serverSocket.Listen(128);
            serverSocket.BeginAccept(null, 0, OnAccept, null);
            Console.Read();
        }

        private static void OnAccept(IAsyncResult result)
        {
            byte[] buffer = new byte[1024];
            try
            {
                Socket client = null;
                string headerResponse = "";
                if (serverSocket != null …
Run Code Online (Sandbox Code Playgroud)

c# websocket handshake

2
推荐指数
1
解决办法
6875
查看次数