Данная статья является пробным камнем в огород ASP-чатстроительства... в дальнейшем возможна организация полного цикла подробных статей о создании целостного чат-сервера на ASP...
Итак, требуется создать чат-сервер на ASP - ну так давайте сразу из огня да в полымя...
Во-первых, сразу разберемся - а что такое чат с точки зрения программиста? Да нет ничего проще - имеем один общедоступный массив, в который, по идее, должны складываться все фразы, посланные каждым пользователем и плюс механизмы для передачи от каждого пользователя его посланий в этот массив и наоборот - передачи всех (или не всех) данных этого массива всем (или, опять же, не всем) пользователям. Вот, если не все, то почти все...
Теперь посмотрим, как сие нам можно без особых потугов создать на ASP... Можно много и по "разному" отзываться о программистах Microsoft да и о самой конторе в целом, но вот за объект Application в данном случае можно только сказать спасибо. И правда, для создания общедоступного массива данных в ASP лучше не придумаешь. Итак, создаем файл global.asa (если он еще не создан) и в Application_OnStart добавляем следующий код:
dim MyMessArray() Redim MyMessArray(20) Application("MessageArray")=MyMessArray
Таким образом мы создали массив MessageArray размерностью 20. Именно в нем и будут храниться все фразы пользователей в чате (размерность, естественно, зависит от вас, но, во-первых, врядли хотя бы четверти пользователей вашего чат-сервера ну очень сильно нужно будет сразу наблюдать на экране 50 или 100 фраз сразу, а, во-вторых, ресурсы сервера тоже не безграничны).
В принципе, на этом можно и закончить :-). Ну, почти закончить. А в виду того, что только три китайских "почти" и только в китае берут за одно целое, мы продолжим.
Сама организация записи\чтения, естественно, просто как два байта. Берем фразу, полученную от пользователя и пишем ее в наш массив:
dim NewMess() Redim NewMess(20) usermess=Request("message") messArray=Application("MessageArray") for i=0 to 19 NewMess(i+1) = messArray(i) next NewMess(0)=usermess Application.Lock Application("MessageArray")=NewMess Application.UnLockЕсли разобрать вышеуказанный код построчно, то:
messArray=Application("MessageArray") for i=0 to 20 Response.Write messArray(i) Response.Write ("<br>") Response.Write Chr(13) next...и построчно: