0

MSearch リクエストを DLNA サーバーに送信し、Javascript を使用してレスポンスを取得したいと考えています。コードは C# で実装しましたが、Chrome アドオン (Html、JS、CSS) を作成しているため、javascript でコードが必要です。問題は、私が Js をよく知らないことです。Node.js のドキュメントを読みましたが、理解できません。

これは私のC#コードです

    public void search()
    {                                                                 
        IPEndPoint LocalEndPoint = new IPEndPoint(IPAddress.Any, 6000);  to 1900 to 
        IPEndPoint MulticastEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);

        Socket UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
        UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
        UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
        UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 2);
        UdpSocket.Bind(LocalEndPoint);
        UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.255.255.250"), LocalEndPoint.Address));


        Console.WriteLine("UDP-Socket setup done...\r\n");

        string SearchString = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:urn:schemas-upnp-org:device:MediaServer:1 \r\nMX:3\r\n\r\n"; //Wifi router connectify: => ST:urn:schemas-upnp-org:device:WANConnectionDevice:1
        UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);  // ==> HTTPMU broadcast
        UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
        UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint); 

        Console.WriteLine("M-Search sent...\r\n");

        byte[] ReceiveBuffer = new byte[64000];

        int ReceivedBytes = 0;

        while (true)
        {
            if (UdpSocket.Available > 0)
            {
                ReceivedBytes = UdpSocket.Receive(ReceiveBuffer, SocketFlags.None);                     

                if (ReceivedBytes > 0)
                {
                    string responseString = Encoding.UTF8.GetString(ReceiveBuffer, 0, ReceivedBytes);
                    if (!responseString.Contains("Windows/6.8 UPnP/1.1 Guru")) continue;

                    string url = GetResourceUriFromHTTPResp(responseString);

                    if (!string.IsNullOrEmpty(url))
                    {

                        Console.WriteLine(url);
                        UdpSocket.Close();
                        break;
                    }
                }
            }
        }
    }

私の主なターゲットは、ユーザーがアドオンをクリックしたときにサーバーの URL を取得して、その URL に移動することです。

私の唯一の選択肢が Node.js のような外部の JavaScript ライブラリを使用することである場合、その関数を使用できるようにするためにライブラリを参照する方法を簡単な言葉で説明してください。

4

1 に答える 1