powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Звуковое оповещение вэб-клиента о событии на вэб-сервере
2 сообщений из 2, страница 1 из 1
Звуковое оповещение вэб-клиента о событии на вэб-сервере
    #38144357
SerVal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сидит клиент на сервере, читает документ, а если ему кто-то прислал новое личное сообщение,
надо чтобы у него блямкнуло. Типа проиграть ему new_private_message.mp3

Что-то я пробовал, пробовал и никак не получается. :(

В пользовательское меню прикрутил таймер. И клиент каждые 10 секунд сообщает, что он на сервере.
Ну и кнопочку для проверки блямканья вручную. Вручную - блямкает, а по таймеру - нет. :(

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<%@ Control
CodeFile="UserMenuModule.ascx.cs" 
..
%>

  <asp:Timer runat="server" id="UpdateTimer" interval="10000" ontick="UpdateTimer_Tick" />
 
   <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
        <Triggers>
          <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
        </Triggers>
        <ContentTemplate>
            
        </ContentTemplate>
   </asp:UpdatePanel>

<audio id="bgsound">
 <source src="http://dts.boinc.ru/Sound/notify_new_pm.mp3" type="audio/mp3">
</audio>
<button type="button" onclick="document.getElementById('bgsound').play();">Play background sound</button>



Вот что делается по таймеру:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   protected void UpdateTimer_Tick(object sender, EventArgs e)
   {
       if (User != null)
       {  // обновить время пребывания клиента на сервере.
           DBUtil.UpdateUserSession(Session.SessionID, host_ip_address, user_id); // Ок. Видно в SQL сервере.
           
          // проверить, нет ли новых личных сообщений.
          if( DBUtil.User_Has_New_Private_Messages(user_id))
          PlaySound(); // не играет !  :(
       }
    }



PlaySound() ; - пробовал разные варианты. Все работают только вручную, или если назначить на какое-нибудь событие.
(кнопку, обновление страницы...)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        protected void PlayBGSound()
        {
            String SoundFile = "http://dts.boinc.ru/Sound/notify_new_pm.mp3";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<audio autoplay src=\"" + SoundFile + "\"></audio>");
            System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "Click", sb.ToString(), false);
        }

        protected void PlayAudio()
        {
            String SoundFile = "http://dts.boinc.ru/Sound/notify_new_pm.mp3";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            sb.Append("<audio src=\"" + SoundFile + "\">");
            sb.Append(" <p>Your browser does not support the audio element.</p> ");
            sb.Append("</audio>");
            System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "Click", sb.ToString(), false);
        }

        protected void PlaySound()
        {
            String SoundFile = "http://dts.boinc.ru/Sound/notify_new_pm.mp3";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<embed src='" + SoundFile + "'");
            sb.Append(" autostart='true' loop='false' visible='false' width='0' height='0' ");
            sb.Append("</embed>");
            System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "Click", sb.ToString(), false);
        }



Может кто подскажет, где собака порылась ?
...а может всё это проще делается ? (но я не знаю).
...
Рейтинг: 0 / 0
Звуковое оповещение вэб-клиента о событии на вэб-сервере
    #38144442
SerVal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так блямкает. :)

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    <asp:Timer runat="server" id="UpdateTimer" interval="10000" ontick="UpdateTimer_Tick" />

        <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
            </Triggers>
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" ></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        //*********************************
        protected void UpdateTimer_Tick(object sender, EventArgs e)
        {
            if (User != null)
            {
                // обновить время пребывания клиента на сервере.
                DBUtil.UpdateUserSession(Session.SessionID, host_ip_address, user_id);
                
               // проверить, нет ли новых личных сообщений.
                if( DBUtil.User_Has_New_Private_Messages(user_id))
                     PlaySound("http://dts.boinc.ru/Sound/notify_new_pm.mp3"); // блямкает ! :)
            }
        }

        //*********************************
        protected void PlaySound(String SoundFile)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<audio autoplay src=\"" + SoundFile + "\"></audio>");
            Label1.Text = sb.ToString();
            TimedPanel.Update();
        }
        //*********************************
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Звуковое оповещение вэб-клиента о событии на вэб-сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]