Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Чат на АСП Добавлено: 14.02.03 17:25  

Автор вопроса:  Лися aka FOX

Задача:

Написать простой чат на АСП и ПХП

Вопрос:

Где можно взять статью или статьи по этой тематике?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Aleksandr Skorodumov



ICQ: 161435166 

Вопросов: 5
Ответов: 96
 Web-сайт: www.beginning.ru
 Профиль | | #1
Добавлено: 15.02.03 16:01

Имеем один общедоступный массив, в который, по идее, должны складываться все фразы, посланные каждым пользователем и плюс механизмы для передачи от каждого пользователя его посланий в этот массив и наоборот - передачи всех (или не всех) данных этого массива всем (или, опять же, не всем) пользователям. Вот, если не все, то почти все...

Теперь посмотрим, как сие нам можно без особых потугов создать на 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) nextNewMess(0)=usermessApplication.LockApplication("MessageArray")=NewMessApplication.UnLock 
Если разобрать вышеуказанный код построчно, то:
  • объявили массив NewMess
  • в переменную usermess занесли данные, полученные от пользователя
  • переписали содержимое массива MessageArray, созданного на базе объекта Application, в свежеобъявленный массив NewMess
  • далее произвели "сдвиг вниз" на одну позицию
  • в нулевую позицию записали полученные данные от пользователя
  • залочили Application
  • переписали массив NewMess в MessageArray
  • разлочили Application
Со чтением и выводом на экран пользователей проще:
messArray=Application("MessageArray")for i=0 to 20    Response.Write messArray(i)    Response.Write ("<br>")    Response.Write Chr(13)next
...и построчно:
  • переписываем содержимое общедоступного массива MessageArray в messArray
  • и в цикле выводим по очереди все фразы из массива, незабывая "втыкать" возврат каретки для браузера в виде
    и для облегчения просмотра в виде Chr(13) :-))
Ну вот теперь точно все, разве что за исключением определенных тонкостей, на разработку и реализацию которых может уйти вся жизнь :-)). Самое главное здесь, не забыть, что у вас должно присутствовать, как минимум, или два окна (но сие, по моему - бред) или два фрейма - один с формой ввода и, соответственно, с кодом для записи фраз в общедоступный массив и, второй "самообновляющийся" фрейм (окно), т.е. в данном фреме (окне ) должно быть указано в эелементе META конкретное значене Refresh, с кодом вывода массива...

Ответить

Номер ответа: 2
Автор ответа:
 CaS



ICQ: 165551179 

Вопросов: 10
Ответов: 124
 Web-сайт: www22.brinkster.com/casperz
 Профиль | | #2
Добавлено: 16.02.03 14:14

Интересно, а что если без global.asa?

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 16.02.03 14:38

Ну собственно чат на этом сайте раньше был без global.asa - сейчас код, помещённый в global.asa отслеживает выход участников чата. Могу прислать код чата.

Ответить

Номер ответа: 4
Автор ответа:
 root



Вопросов: 12
Ответов: 147
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 16.02.03 16:15

2Павел: мне тоже скинь :)

Ответить

Номер ответа: 5
Автор ответа:
 Synax



Вопросов: 20
Ответов: 61
 Web-сайт: elance.ru/sands
 Профиль | | #5
Добавлено: 16.02.03 21:24

И мне пожалуйста скинь!

slavrentiinov@mail.ru

Ответить

Номер ответа: 6
Автор ответа:
 Лися aka FOX



Вопросов: 2
Ответов: 11
 Профиль | | #6 Добавлено: 17.02.03 06:25

Павел, скинь, пожалуйста мне на мыло. Очень обяжешь

Ответить

Номер ответа: 7
Автор ответа:
 Лися aka FOX



Вопросов: 2
Ответов: 11
 Профиль | | #7 Добавлено: 17.02.03 07:32
 А как насчет PHP (в простонародье - ПХП)?? Как на ентом языке написать чат??

Ответить

Номер ответа: 8
Автор ответа:
 Alex&r



Вопросов: 10
Ответов: 105
 Профиль | | #8 Добавлено: 17.02.03 09:26

Кое-какие ссылки в помощь по ASP и РНР:

http://www.activeserverpages.ru/

http://www.softlinks.ru/scripts/s2p1.php

http://www.relib.com/articles/articles.asp?cid=5

http://gnezdo.webscript.ru/

http://www.rushelp.com/37/

http://cgi.myweb.ru/

http://hiprog.com/asp/default.asp

http://www.codenet.ru/ - Руководство по РНР 3.0 и ASP - мануал

http://phpdoc.hut.ru/ - PHP - мануал - перевод избранных глав

 

Ответить

Номер ответа: 9
Автор ответа:
 Лися aka FOX



Вопросов: 2
Ответов: 11
 Профиль | | #9 Добавлено: 01.03.03 07:56
У меня дурацкий вопрос... зачем переводить избранные главы из ПХП мануала, когда на сайте ПХП.НЕТ уже усть документация в русском переводу, правда частично - некоторые фукции до сих пор по аглицки описаны....

Ответить

Номер ответа: 10
Автор ответа:
 CaS



ICQ: 165551179 

Вопросов: 10
Ответов: 124
 Web-сайт: www22.brinkster.com/casperz
 Профиль | | #10
Добавлено: 01.03.03 17:38

Оффтопик... но, конечно, не откажусь от исходников, только скинь их на этот имэйл colorburn@narod.ru

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам