2016-09-20 2 views
0

Я пытаюсь создать онлайн-чат-программу для своих веб-пользователей, чтобы поговорить с продавцом в прямом эфире. Я использую команду ajax jquery для обновления чата, который хранится в базе данных. Проблема, с которой я столкнулся, заключается в том, что она потеряет переменную сеанса, которая идентифицирует пользователя при вызове ajax, но это только кажется для некоторых пользователей. Есть ли какие-то настройки для coldfusion, которые мне не хватает?Передача переменной сеанса в ajax с coldfusion 9

Должны ли у меня какие-либо конкретные настройки, установленные в моем CF-администраторе?

<cfapplication name="Chat Room" 
      clientmanagement="Yes" 
      sessionmanagement="Yes" 
      sessiontimeout="#CreateTimeSpan(0,1,0,0)#" > 

<cfset session.UserID = #new_session.UserID# > 


window.onload = function() 
    { 
     setInterval("ReloadChatWindow();", 2500); 
    }; 

function ReloadChatWindow() 
    { 
     $.ajax({url: "messages.cfm", success: function(result){ 
      $("#ChatLog").html(result); 
     }}); 

     $("#ChatLog").scrollTop($("#ChatLog")[0].scrollHeight); 
    } 

new_session.UserID # только от вставки базы данных (пользователь предоставляет свое имя и я задаю им идентификатор_пользователь.

только один домен использует сеанс, нет перекрестных вызовов домена.

+1

где вы получаете 'new_session.UserID' и зачем устанавливать новую область сеанса? – TRose

+2

Попробуйте включить сеансы J2EE ** на ** из CF Administrator «НАСТРОЙКИ СЕРВЕРА»> «Переменные памяти» – RRK

+1

Являются ли клиенты, которые теряют сеансы, когда-либо работали правильно или всегда ли откатывают сеансы? Все ли они используют один и тот же домен или у вас есть несколько доменов, ударяющих это приложение? –

ответ

0

Сессиальные переменные истекают, поэтому вам нужно проверить, доступны ли они, прежде чем вы сможете их использовать. В вашем файле messages.cfm вы должны проверить, действительно ли у пользователя действительный сеанс, и если он не перенаправляет их на страницу входа в систему Если у них есть действительный сеанс, вы можете обновить сообщения.

Смежные вопросы