Прокси-сервер C # с использованием сокетов, отправляющих JavaScript клиенту - PullRequest
0 голосов
/ 22 июля 2010

Я написал Proxy на C #, используя сокеты и TCPListener, прослушивающий определенный порт. В настоящее время слушатель получает запрос «GET» от браузера клиента, а затем использует класс Socket.Send () для пересылки запроса от имени клиента. Ответ получен с использованием класса Socket.Reveive () и затем переадресован на клиент с помощью Socket.Send () еще раз.

Это прекрасно работает, когда клиент запрашивает базовый HTML-сайт. Однако, когда клиент запрашивает веб-сайт, содержащий некоторый javascript, такой как <body onload='doThis();', он не может запустить javascript.

В этом конкретном сценарии функция javasript выполняет перенаправление. Нужно ли что-то изменить в настройках сокета, чтобы позволить JavaScript работать при отправке клиенту?

Ответы [ 2 ]

0 голосов
/ 05 августа 2010

Проблема решена.Там проблема была на клиентском ПК.Перезапустил, попробовал еще раз, и это сработало как бомба.

0 голосов
/ 22 июля 2010

Трудно сказать, не имея намного больше информации.

Реализована ли в html-файле функция javascript "doThis ()" или она входит в файл include .js?Если это происходит из включенного .js-файла, убедитесь, что «text / javascript» отправляется как тип содержимого в заголовке, иначе некоторые браузеры не будут запускать js.

Действительно ли JavaScript не выполняетсятолько форвард не работает?Пробовал с <body onload='alert('test');'?Выполняется ли он?

Если да: как именно выглядит ваш JS перенаправления?

Если нет: что вы делаете после "Socket.Send()"?Вы каким-либо образом даете клиенту знак, что страница готова?Некоторые браузеры не будут запускать onLoad, пока страница не будет заполнена.Вы пытались явно закрыть соединение после отправки файла клиенту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...