Интерактивное общение &quot

advertisement
Министерство образования и науки Российской Федерации
федеральное агентство по образованию
государственное образовательное учреждение
высшего профессионального образования
тюменский государственный университет
институт математики и компьютерных наук
кафедра программного обеспечения
Курсовая работа
на тему: интерактивное общение «чат»
Выполнил:
Студент группы № 367
Пыпа Артём Викторович
Научные руководители:
Оленников Евгений
Александрович
Дата сдачи: ___________
Оценка: ______________
Тюмень, 2009
Оглавление
Глава 1. Разработка веб прилажения на основе ASP.NET .................................................................................4
1.1 ASP.NET Web application .....................................................................................................................4
1.2 Использование нескольких языков программирования ....................................................................5
1.3 Технология разделения кода ................................................................................................................6
1.4 Компиляция страниц по требованию...................................................................................................8
1.5 Изменения в структуре проекта Visual Studio ....................................................................................9
1.6 Аутентификация пользователя. ..........................................................................................................10
1.8 Описание запроса................................................................................................................................11
1.9 Управление страницей .......................................................................................................................12
1.10 Обновление данных без перезагрузки страницы ...........................................................................14
Глава 2. Разработка системы интерактитвного обешений ..............................................................................19
2.1 Разработка базы данных для веб-приложения ................................................................................19
2.2 Разрабока веб приложения для организации обмена сообшениями ............................................20
2.3 Описание функциональности разработанного web-приложения ..................................................22
Заключение: .........................................................................................................................................................25
Список литературы..............................................................................................................................................26
2
Введение
В
студенческой
среде
ИМКН
зачастую
становится
проблемным
распространение информации о предстоящих в институте мероприятиях.
Как правило, студенты не имеют представления о жизни Актива и
Студенческого совета. Для того, чтобы сделать общественную жизнь
института более публичной необходимо решение проблемы оповещения
каждого студента о целях, времени и месте проведения того или иного
мероприятия. Этим решением может стать наличие информационного
ресурса, где каждый студент, без затрат на поиски актива, сможет напрямую
пообщаться с организаторами, обсудить с участниками данное мероприятие.
Решить данную проблему поможет использование данной системы
Цель: Разработать программный продукт для интерактивного он-лайн
общения, который сделает возможным виртуальную работу Студенческого
Совета, Актива института, а также оповещение всех студентов о
предстоящих мероприятиях.
Задачи:
1. Разработать логическую и физическую структуру базы данных для вебприложения.
2. Разработать web приложения на ASP.NET.
3. Установка, настройка и тестирование Internet Information Server (IIS)
3
Глава 1. Разработка веб прилажения на основе ASP.NET.
1.1 ASP.NET Web application
Каждый раз, разрабатывая проект и создавая Web-приложение, пользуются
различными средствами для создания архитектуры приложения, редактирования
кода и публикации результатов своего труда на Web-сервере. При этом для
конечного пользователя Web-приложение любой сложности остается набором
HTML-страниц, каждая из которых имеет свой уникальный URL. По большом
счету, пользователю нет дела до того на какой платформе или с использованием
какой технологии создано приложение. У пользователя есть цель, которую он
хочет достичь и универсальное средство, практически любой используемый им
Web-браузер. В этом заключено огромное преимущество приложений для Internet
по сравнению с приложениями для настольных систем – существование
общепринятого «языка общения», HTML кода. Для того, чтобы развернуть Webприложение достаточно установить его на сервер, после чего приложение может
быть доступно любому клиенту с установленным Web-браузером. К сожалению,
здесь тоже существует очевидная проблема в обработке HTML кода браузерами
разных производителей.
Задача разработчика заключается в том, чтобы создать приложение,
генерирующее HTML код, оптимальный для большинства браузеров, которыми
пользуется конечный пользователь. Каждая технология, используемая для
создания Web-приложения, позволяет генерировать HTML код, поэтому, в
конечном итоге, выбор технологии, на основе которой будет создано Webприложение, зависит лишь от удобства и скорости разработки и простоты
развертывания и поддержки конечного продукта.
Преимущество технологии ASP.NET перед остальными в высокой степени
абстракции, построенной над стандартным HTML кодом: использование
объектно-ориентированной парадигмы, поддержку нескольких языков
4
программирования, наличие универсального основания, содержащего тысячи уже
готовых для использования в проектах решений – Microsoft .NET Framework.
При этом для разработки приложения может быть использована любая среда
разработки или даже текстовый редактор, позволяющий создавать, редактировать
и сохранять текстовые файлы. Если же разработчик желает воспользоваться всей
мощью Microsoft .NET Framework и ASP.NET и, при этом, затратить как можно
меньше усилий, то ему нужно воспользоваться подходящей для его задач средой
разработки. Одним из наиболее эффективных средств создания Web-приложений
ASP.NET является Microsoft Visual Studio. Поддержка ASP.NET 2.0 включена в
версию Visual Studio 2005.
1.2 Использование нескольких языков программирования
Microsoft .NET Framework и Visual Studio 2005 поддерживает несколько
языков программирования, таких как Visual Basic, Visual C#, Visual C++, Visual
J#. Поскольку эти языки используют единую среду выполнения CLR (Common
Language Runtime) и соответствуют общим стандартам CLS ( Common Language
Specification), то сборка, созданная с применением одного из .NET языков, может
быть использована в проекте, разрабатываемом на другом языке
программирования, также, как если бы эта сборка и приложение были написаны
на одном и том же языке.
С выходом Microsoft .NET Framework 2.0 стало возможно использовать в одном
и том же проекте разные языки программирования. То, что Web-приложение
ASP.NET может быть написано на нескольких языках программирования, очень
удобно, если уже есть проверенные решения на одном из языков, а проект
пишется с использованием другого языка, либо, если в команде имеются
разработчики, использующие различные языки программирования.
5
1.3 Технология разделения кода
Основа всего в Web-приложении – это страница. Пользователь, пользуясь
браузером, перемещается между страницами, периодически возвращаясь к уже
просмотренным ранее страницам, вводя какие-то данные в HTML формы и
получая некоторый результат. В ASP.NET страница чаще всего представляет
собой Web-форму, содержащую различные элементы управления, реагирующую
на события, создаваемые пользователем.
ASP.NET 1.x позволяет разделять код логики от кода представления, то есть
помещать код программной логики страницы в файл .cs или .vb, отдельно от кода
собственно страницы, размещаемом в .aspx файле. Эта технология
называетсяCode-Behind. Таким образом, дизайн страницы может быть изменен не
затрагивая кода страницы, что позволяет разделить ответственность за внешний
вид и работу страницы между дизайнером и программистом. Для этого в .aspx
файле можно задать параметры директивы Page.
<%@ Page Language="c#" Src="User.aspx.cs" %>
Но для поддержки редактирования с помощью Microsoft Visual Studio .NET в
ASP.NET странице необходимо указать класс, соответствующей данной странице
и файл, в котором находится код этого класса. Для этого директива Page
преобразуется с использованием ключевых слов Codebenind и Inherits.
<%@ Page Language="c#" Codebehind="TheProject.User" Inherits="User.aspx.cs" %>
В ASP.NET 2.0 используется иной механизм разделения кода. В директиве Page
при этом необходимо использовать другие ключевые слова: CodeFile и Inherits.
<%@ Page Language="c#" CodeFile="TheProject.User" Inherits="User.aspx.cs" %>
В этом случае код класса программной логики страницы будет размещен в файле
указанном в атрибуте CodeFile. Надо отметить, что Visual Studio 2005 использует
разделяемые классы (partial classes).
6
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Поэтому разработчик может поместить код класса в нескольких файлах, но
подобное рассредоточение кода делает приложение весьма громоздким и
трудным в поддержке и разработке.
Используемая в Visual Studio 2003 модель Code-Behind обладает несколькими
весьма существенными недостатками. Прежде всего, используя Visual Studio
разработчику необходимо компилировать проект перед публикацией, поскольку
ASP.NET компилирует страницы, только если указан атрибут Src, не
используемый Visual Studio. При этом, поскольку среда ASP.NET обнаруживает
изменение даты создания сборки, после каждой замены старой сборки в каталоге
bin происходит перезапуск домена приложения, что выливается во временную
«заторможенность» в работе приложения.
Visual Studio 2005 использует новые ключевые слова, поддерживаемые средой
выполнения ASP.NET 2.0, а среда выполнения, в свою очередь, использует новую
технику компиляции страниц. Это позволяет решить проблему замены сборки на
более новую.
Несмотря на это, Visual Studio 2005 по-прежнему позволяет отказаться от
разделения кода и поместить код программной логики в самом файле страницы, и
использовать теги <script runat="server"></script>. Более того, по умолчанию
Visual Studio создает именно страницы без разделения кода.
7
1.4 Компиляция страниц по требованию
Сравним действия, которые совершает ASP.NET 2.0 и ASP.NET 1.0, когда
пользователь запрашивает файл с расширением .aspx. В ASP.NET 1.x среда
выполнения анализирует директиву Page страницы, осуществляет поиск
соответствующего класса в сборке приложения, затем на основании кода
страницы создается класс, производный от класса программной логики страницы.
В случае если сборка отсутствует, то осуществляется поиск файла программной
логики, указанного в атрибуте Src директивы Page. Если файл найден, то
происходит компиляция сборки, если нет, то ASP.NET выбрасывает исключение.
В ASP.NET 2.0 среда выполнения также анализирует директивы Page,
осуществляет поиск сборки соответствующей классу логики страницы, после чего
создается класс страницы. В отличие от ASP.NET 1.x, родительским классом для
класса страницы является System.Web.UI.Page, поскольку создаваемый
динамический класс является собственно классом страницы (используются
разделяемые классы для класса страницы и класса программной логики), а не
потомком класса программной логики. Поэтому, если в ASP.NET 1.x класс Webформы мог называться также как и сама Web-форма.
<form id="frmDefault" runat="server"></form>
…
public class frmDefault : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
8
В ASP.NET 2.0 это недопустимо, поскольку элемент управления
System.Web.UI.Form является элементом класса.
Основным преимуществом ASP.NET является то, что в случае отсутствия
сборки, необходимой для выполнения страницы, происходит компиляция только
файла программной логики страницы, без перекомпиляции всей
сборки.Поскольку существует динамическая компиляция, то необходимо
обеспечить возможность создавать код, общий для всех страниц приложения. Для
этой цели в ASP.NET 2.0 существуют специальные директории, являющиеся
дочерними директориями корневой директории приложения, одна из которых
App_Code, служит для хранения файлов, содержащих общий код для всех
страниц. При выполнении динамической компиляции, код из директории
App_Code компилируется и становится доступным для всех страниц Webприложения. При этом Visual Studio 2005поддерживает код, находящийся в
директории App_Code,поэтому работает подсветка синтаксиса и IntelliSense.
Исследовать генерируемые средой выполнения ASP.NET 2.0 файлы, и
подробно разобраться в процессе компиляции можно изучив содержимое
директории: %WINDIT%\Microsoft.NET\Framework\версия\Temporary ASP.NET
Files\имя_приложения, куда ASP.NET 2.0помещает динамически созданные
сборки. Либо, вызвав ошибку на ASP.NET страницев режиме отладки выбрать
ссылку Show Complete Compilation Source.
Если же необходимо заренеескомпилировать проект, перед развертыванием на
сервере в ASP.NET 2.0 существует возможность полной или частичной
прекомпиляции Web-приложения.
1.5 Изменения в структуре проекта Visual Studio
В версии Visual Studio 2005 больше нет файлов .csproj или .vbproj, которые
раньше создавались для каждого из типов проектов ASP.NET. Вместо файлов
проекта Visual Studio использует структуру директорий, таким образом, для того
чтобы включить в проект существующий файл достаточно просто скопировать
9
его в директорию проекта. Следует отметить, что если файл или директория
удаляется из дерева файлов проекта в окне Solution Explorer, то файл или
директория физически удаляются из файловой системы.
1.6 Аутентификация пользователя.
Для аутентификации необходимо принять данные пользователя, сверить их
с требуемыми значениями и вызвать
CookieAuthentication.RedirectFromLoginPage(string UserName,bool
CreatePersistentCookie), где UserName - имя пользователя, необходимое для Cookie
аутентификации, CreatePersistentCookie - если значение истинно, то cookie
записывается "надолго" у клиента, причем сохраняется и после прерывания
сессии. В противном случае используется SessionCookie, действующее только на
время сессии.
Пример:<script language="C#" runat= server>
void Login_Click(Object sender, EventArgs E) {
if ((UserLogin.Value == "DotSiteTeam") && (UserPassword.Value ==
"BestITResource")) {
CookieAuthentication.RedirectFromLoginPage(UserLogin.Value,true);
}
else { //вывод сообщения о неправильно введенных данных}
}
</script>
10
Теперь пользователь аутенфицирован и при обращении к страницам приложения
не будет происходить переадресации на указанную нами ранее в config.web
Default.aspx.
Для большего контроля над cookies можно использовать методы
CookieAuthentication.GetAuthCookie(string UserName,bool CreatePersistentCookie) и
CookieAuthentication.SetAuthCookie(string UserName,bool CreatePersistentCookie).
С помощью первого разработчик может получать данные о cookie, с помощью
второго установить требуемые значения.Эти методы не производят
переадреcацию, что позволяет управлять ей для обеспечения лучшего интерфейса
взаимодействия с пользователем.
1.8 Описание запроса
Запрос станицы – Запрос страницы осуществляется до начала жизненного
цикла страницы. Когда пользователь осуществляет запрос, среда выполнения
ASP.NET устанавливает, необходимо ли осуществить компиляцию страницы и
начать жизненный цикл, либо можно выдать в качестве ответа страницу из кеша,
таким образом не выполняя страницы.
Начало жизненного цикла – На этом этапе происходит установка свойство
Response и Request и свойства UICulture. Также, на этом этапе устанавливается,
была ли эта страница запрошена в результате постбэка (отправления данных на
сервер) и соответствующим образом устанавливается свойсто IsPostBack.
Инициализация страницы – Ко времени инициализации страницы все дочерние
пользовательские элементы управления уже созданы и имеют установленный
свойства UniqueID. В это же время к странице применяются темы оформления.
Если страница вызвна в результате постбэка, то данные, отправленные на сервер,
еще не загружены в свойства элементов управления, на этом этапе.
11
Загрузка – Если страница вызвана в результате постбэка, то на этом этапе
устанавливаются свойства элементов управления, на основании информации о
состоянии (ViewState и ControlState).
Валидация – Вызывается метод Validate() для всех, находящихся на странице
валидаторов.
Обработка постбэка – Вызываются обработчики событий (при условии, что
постбэк произошел).
Рендеринг – Сохраняется информация о состоянии, затем класс страницы
вызывает соответствующие методы дочерних элементов управления для
генерации HTML представления и передачи его в Response.OutputStream.
Выгрузка – Выгрузка происходит после того, как создано HTML представление
для всей страницы.
Во время прохождения этапов жизненного цикла возникают события,
подписавшись на которые, разработчик может выполнять свой собственный код.
Стоит упомянуть атрибут AutoEventWireup, директивы @Page: если этот атрибут
установлен в true (значение по умолчанию), то методы класса страницы,
названные Page_НазваниеСобытия, автоматически становятся обработчиками
соответствующих событий жизненного цикла станицы.
Для того, чтобы проследить жизненный цикл страницы и последовательность
возникновения событий, можно установить атрибут Trace директивы @Page в
true, а атрибутTraceMode в "SortByTime". Тогда в разделе Trace Information можно
найти список произошедших событий (колонка Message).
1.9 Управление страницей
Иногда бывает необходимо, чтобы после загрузки страницы выделение
было установлено на какой-то определенный элемент управления (например в
12
поисковой форме логично установить фокус ввода на основное поле поиска), для
этого можно задать значение атрибута defaultfocus тега form.
<form id="frmMain" runat="server" defaultfocus="txtFirstName">
<asp:TextBox ID="txtFirstName" runat="server" />
<asp:TextBox ID="txtSecondName" runat="server" />
<asp:TextBox ID="txtLastName" runat="server" />
</form>
Выделением можно управлять программно, вызывая метод SetFocus, в качестве
параметра передавая уникальный идентификатор этого элемента:
protected void Page_Load(object sender, EventArgs e)
{
if(isPostBack)
{
SetFocus("txtLastName");
}
else
{
SetFocus("txtFirstText");
}
}
13
1.10 Обновление данных без перезагрузки страницы
В ASP.NET 2.0 стало возможным обновлять данные на странице без
отправки страницы на сервер и ее полного обновления. Это стало возможно
благодаря появлению клиентских сценариев с обратным вызовом (callback scripts
или клиентские коллбэки). После того, как некоторое событие вызывает запрос к
серверу, обновленные данные передаются непосредственно в клиентский
сценарий в качестве аргументов функции.
Подобный способ обновления данных на странице удобно и выгодно применять,
когда для обновления всей информации требуется много ресурсов и достаточно
длительное время, при этом эти часть данных обновляется часто, а остальные
данные статичны. Тогда время на обновления данных, например, одного
пользовательского элемента, учитывая время запроса к серверу, обработки и
получения ответа, будет существенно ниже, чем время обновления всей
страницы.
Допустим, существует страница, на которой находится выпадающий список.
Когда пользователь выбирает некоторое значение из списка, в некоторый элемент
управления загружается значение, логически связанное с выбранным из списка
значением. При этом задача такова, что нельзя хранить все данные на стороне
клиента (возможно данных слишком много и страница будет долго передаваться
по сети, либо данные генерируются на сервере не только в зависимости от
выбранного пользователем элемента выпадающего списка). В ASP.NET 1.x для
решения этой задачи необходимо привязать к событию изменения значения в
выпадающем списке серверный метод. При этом список должен вызывать
отправку страницы на сервер при каждом изменении значения
(AutoPostBack="True").
protected void ddStatic_SelectedIndexChanged(object sender, EventArgs e)
{
// На основании значения ddStatic.Items[ddStatic.SelectedIndex].Value
14
// метод устанавливает свойства других элементов управления
}
В ASP.NET 2.0, как уже было сказано выше, существует возможность не
обновлять всю страницу целиком. В данном случае разумно обновить только
необходимые данные, поскольку обновлять всю страницу только для того, чтобы
установить одно значение слишком расточительно.
Для реализации механизма обновления данных без перезагрузки страницы
необходимо создать клиентскую функцию обратного вызова, принимающую
переданные с сервера параметры, серверную функцию, принимающую параметры
от клиента и возвращающую клиенту значения на основании полученных
параметров и связать эти две функции. Мало того, механизм обратного вызова в
ASP.NET 2.0 позволяет возвращать результат асинхронно. Для этого в интерфейсе
ICallbackEventHandler определены два метода: RaiseCallbackEvent, для получения
параметров на сервере и GetCallbackResult для возвращения результата
клиенту.Для реализации функциональности предыдущего примера в ASPX файле
помещается следующий код.
<script>
function UpdateText(result, context)
{
dSpan.innerText = result;
}
</script>
<asp:DropDownList ID="ddDynamic" runat="server" />
<br /><span id="dSpan" style="font-weight: bold;" />
15
Класс страницы, использующей функции с обратным вызовом должен
реализовывать интерфейс ICallbackEventHandler.
public partial class ScriptCallback_aspx : System.Web.UI.Page,
System.Web.UI.ICallbackEventHandler { }
Сигнатуры функций, поддерживающие обратный вызов выглядят следующим
образом:
public virtual void PrepareCallbackEvent(string Аргументы)
public virtual string RenderCallbackResult()
private string EventArgument = "";
public void PrepareCallbackEvent(string eventArgument)
{
EventArgument = eventArgument;
}
public string RenderCallbackResult()
{
return EventArgument; // значение типа string
}
Последним шагом к поставленной цели является связывание серверной и
клиентских функций.
protected void Page_Load(object sender, EventArgs e)
{
// создаем ссылку на функцию обратного вызова
16
string callbackFunction = Page.ClientScript.GetCallbackEventReference (
this,
"document.all['ddDynamic'].value",
"UpdateText",
"null"
);
// Привязываем сценарий к событию изменения значения выпадающего
// списка
ddDynamic.Attributes["onchange"] = String.Format("javascript:{0}",
callbackFunction);}
Метод GetCallbackEventReference объекта ClientScriptManager принимает в
качестве параметров ссылку на объект страницы, строку, указывающую на
значение, которое необходимо передавать на сервер при обратном вызове, имя
метода на стороне клиента и принимающего ответ сервера. Подробное описание
можно получить в документации MSDN или с помощью инструмента Visual
Studio - Object Browser.
Используя эту технологию можно создавать сложные методы обновления
данных страницы и позволяющие получить значительный выигрыш в
производительности, для этого достаточно разобраться в том, какой код
генерирует среда выполнения ASP.NET, реализуя эту функциональность.
// Список, вызывающий перезагрузку страницы
<select
name="ddStatic"onchange="javascript:setTimeout('__doPostBack(\'ddStatic\',\'\')',
0)"id="ddStatic"></select>
17
// Список вызывающий метод с обратным вызовом
<select name="ddDynamic"
id="ddDynamic"onchange="javascript:WebForm_DoCallback('__Page',document.all['d
dDynamic'].value,UpdateText,null,null,false)">
Стандартная функция doPostBack весьма проста и служит для сохранения данных
о событии в скрытые поля формы.
var theForm = document.forms['frmCallBack'];
function __doPostBack(eventTarget, eventArgument)
{
if (theForm.onsubmit == null || theForm.onsubmit())
{
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
При использовании функций с обратным вызовом механизм значительно
сложнее. Код функции WebForm_DoCallback гораздо больше, чем doPostBack,
поскольку эта функция определяет тип объектной модели браузера, после чего
загружает необходимый для передачи данных с модуль. Например, для браузера
поддерживающего DOM это будет Microsoft.XMLHTTP.
18
Глава 2. Разработка системы интерактивного общения.
2.1 Разработка базы данных для веб-приложения
В создании базы данных используется MS SQL Server 2005 и
минимальный набор таблиц для реализации функциональности веб-чата.
Ниже на рисунке изображена схема таблиц и связей между
собой.

User: Таблица содержащая информацию о пользователе. Так же я могу
добавить свои собственные поля, как адрес, город, и так далее, для
дальнейшего развития чата.

Message: Таблица содержащая историю сообщений во всех комнатах, время
их создание и соответственно владельцев сообщений.
19

Room: Таблица содержащая информацию о различных комнатах. Это
значит, что я могу создать более одной комнаты. Но пока я буду
использовать только одну комнату.

LoggedInUsers: Таблица содержащая информацию о том кто, когда и в
какую комнату заходил и выходил, это поможет для отображения списка
пользователей в той или иной комнате.
2.2 Описание функциональности разработанного web-приложения
При создании страницы авторизации используется стандартные инструменты
Login_Authenticate настройки которого прописываются в файле конфигурации
web.config. Использование готового инструмента Login дает возможность
повысить безопасность, поскольку при написание авторизации с чистого листа не
исключает ошибки при написании кода, который может стать уязвимостью для
написания своего компелятора тритьиими лицами.
Чат-приложение будет требовать от всех пользователей авторизацию. Если
произошла ошибка при не правильном вводе логина или пароля окно авторизации
сообщит «Неудачная попытка входа. Повторите попытку.»
20
Если авторизация прошла успешно то пользователь будет перенаправлен на
страницу приложения-чата в default.aspx в первую комнату «Главная» .
В web приложении используется структура GUI (графический пользовательский
интерфейс).
Описание страницы.
1. Главное большое поле отображает ход сообщений в данной комнате.
2. Строка набора сообщения.
3. Кнопка для отправки набранного сообщения.
4. Список пользователей находящихся в данной комнате.
5. Кнопка выхода из чата.
6. На странице используются элементы GUI..
21
2.3 Описание функциональности web-приложения
Все пользователи должны быть авторизированны. После сохранения UserID
пользователь перенаправляется на главную страницу в комнату «Главная».
Для оповещения всем пользователям данной комнаты, что пользователь зашёл
или вышел из комнаты, добавляем запись в таблицу LoggedInUser
характерные для этой комнаты. Тогда мы извлекаем и показываем всем
пользователям в этой комнате что пользователь вошёл. Vishel>>>:дата и время
Для вставки сообщений используется AJAX Control Toolkit. При отправки
системного сообщения оно сохраняется в таблице Messege, сохраняется само
сообщение, кому принадлежит оно, и ID комнаты, в какой комнате оно было
написано. В главной форме выводиться сообщения что вы вошли в систему, когда
авторизовались, в чате все собеседники кто находится в комнате получают
сообщение что вы вошли.
Отправка сообщений:
22
Также для облегчения отправки набранного сообщения, для удобства
можно нажимать не только кнопку "Отправить", но и простым нажатием
клавиши "Inter" на клавиатуре.
Переход в другую комнату:
Для перехода в другую комнату используется сплывающийся список в
котором содержится список всех существующих комнат.
Что бы перейти в комнату требуется выбрать название комнаты и нажать на
кнопку перейти. При переходе в другую комнату, всем пользователям комнаты в
которую вы перешли отправиться сообщение что вы вошли в комнату.
Выход из чата:
Есть два способа выйти нажав на кнопку «Выход» или закрыть браузер.
Многие пользователи не всегда нажимают кнопку Выход , а вместо этого
просто закрывают браузер, когда они подключены к чату. Для того что бы
узнать открыто окно чата или нет используется JavaScript на странице
клиента отражающая функцию «onunload».
23
Обновления страницы:
Есть два способа получить сообщение из таблицы, извлекаем сообщение из базы с
целью показать его пользователям.
1. При отправки сообщения: каждый раз, мы нажмете кнопку Отправить или
клавишу Enter, сообщение будет записываться в соответствующую таблицу.
В окне чата, также автоматически загружается сообщения из таблицы
Messege. При отправки сообщения на секунду раньше чем его отправил
другой собеседник будет опубликовываться в верхней части окна и это
будет выглядеть, так как будто другой пользователь только что отправил
вам сообщение поэтому что бы не было путаницы используется таблица
сообщений.
2. Каждые 7 секунд по таймеру срабатывает обновление окна сообщений:
Если по какой-то причине вы не отправляли сообщения, таймер который
настроен на обновление страница каждые 7 секунд , будет обновлять
таблицу сообщений и тем самым позволяет наблюдать за диалогом в
комнате.
24
Заключение:
В моей курсовой работе я достиг поставленных целей реализовав программный
продукт для организации интерактивного онлайн общения студентов, которая
помогала студентам и членам студенческого совета обсуждать вопросы по
организации каких либо мероприятий. Данный проект может быть развит в
перспективе до более высокие задач, добавив некоторые новые функциональных
возможностей, такие как рассылка сообщений на E-mail, на мобильный телефон,
так же в дальнейшем создать возможность видео чата.
25
Список литературы
1. «Программирование баз данных Microsoft SQL Server 2005 для
профессионалов». Пер. с анг.-М. : ООО «И.Д. Вильямс», 2008. – 1072с.: ил.
– Парал.тит.англ. ISBN 978-5-8459-1329-6(рус.)
2. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. – М. : ООО
«И.Д. Вильямс», 2008. – 1232 с. : ил. – Парал.тит.внгл. ISBN 978-5-84591315-2(рус.)
3. Нейгел, Кристиан, Ивьен, Билл, Глинн, Джей, Скиннер, Морган, Уотсон,
Карли. Н45 C# 2005 и платформа .NET 3.0 для профессионалов. : Пер. с
англ. – М. : ООО «И.Д.Вильямс», 2008 – 1376+416(на CD) с. : ил. – Парал.
Тит.англ. ISBN 978-5-8459-1317-3(рус.)
4. Рейли Д. Создание приложений Microsoft ASP.NET издательско-торговый
дом «Русская Редакция» 2002 ---- 480 c. ISBN 5-7502-0218-6
5. Г.Бучек ASP.NET учебный курс издательств – “ПИТЕР” 2002
26
Download