Donny Rebecca Ответов: 1

Ну и как мне это исправить?.. Это дает мне около недели!


Этот код от Modenacam FMS....

Все работает, кроме чата.

Когда исполнитель с сайта cam вошел в систему он выдает это сообщение на сервер:
onConnect
User is ACEPTED
onConnect, performerId: 16, pasword: 645062a5e513f1cd2e1a8d4e64789b4ccd05e795f51a9e3d4f72c4cc61337a87, userId: 16, userType: performer, userName: helma, uniqId: a8882bb2c3d7cd4a3f98f071afdc10528020d5038, sessionType: 1, md5Check: 1, truePrivate: undefined 
ip=84.104.42.94&userId=16&userType=performer&pasword=645062a5e513f1cd2e1a8d4e64789b4ccd05e795f51a9e3d4f72c4cc61337a87&uniqId=a8882bb2c3d7cd4a3f98f071afdc10528020d5038&userName=helma&performerId=16&hash=WpRp4JJ2xjibLezgESz&numberOfCameras=1
User is ACCEPTED
Auth allowed allow
getTopic , [object Client]
Sending error message: C:\Program Files\Adobe\Flash Media Server 4.5\applications\hotprive_main\main.asc: line 647: ReferenceError: FMS_VERSION is not defined
code: Application.Script.Error level: error
Application.Script.Error details: C:\Program Files\Adobe\Flash Media Server 4.5\applications\hotprive_main\main.asc: line 647: ReferenceError: FMS_VERSION is not defined
Application.Script.Error details: undefined
code: Application.Script.Error level: error
Sending error message: Failed to execute method (getFmsVersion).
onPublish [object Client], [object Stream]


Если исполнитель в этом случае" Хельма " говорит в чате: это тестовое сообщение как исполнитель

Сервер откажется от этого:
broadcastChatLineIcon helma, This is a test message as performer, 16, 0xff0010 


И форма чата не будет показывать текст: это тестовое сообщение как исполнитель

Если пользователь собирается поболтать и сказать: это тестовое сообщение от пользователя

Сервер отвечает на это:

broadcastChatLineIcon rebecca, This is a test message from a user, v1, 0x123ff0 


И снова он не будет показывать текст в форме чата....



Этот скрипт ниже называется: main. asc
Если вы видите, что есть раздел для передачи сообщения в форму..
Но я думаю, что есть какой-то сбой кода, что он не будет отвечать на чат..

если вы ищете в разделе: broadcastChatLineIcon, то вы можете увидеть его с помощью markt + message +, но я думаю, что он неправильно закодирован.....

это флэш-сайт, поэтому main. asc работает с Flash Media Server 4.5 в виде файлов FMS
Может ли кто-нибудь разобраться со мной, чтобы заставить его снова работать?

load("components.asc");

application.topic = "";
application.cameraNo = 0;
application.performer = null;
application.hash = null;
application.fmsId = null;

application.flvName = null;

application.videoStream;

application.baseUrl = "http://www.pcheld.nl/arco/chat/";
application.banUrl = "fms/banmanager";
application.authUrl = "fms/auth";
application.authPerformerUrl = "performer/fms/auth";
application.taxUrl = "fms/tax";
application.truePrivateUrl = "fms/trueprivate";
application.endSessionUrl = "fms/endsession";
application.chatLogUrl = "fms/log";
application.tipUrl = "fms/tip";
application.validateChipsUrl = "fms/validatechips";

application.onAppStart = function()
{
	trace("onAppStart");
	
	application.allowDebug = true;
}

application.onConnect = function(clientObj, performerId, pasword,
	userId, userType, userName, uniqId, sessionType, md5Check, truePrivate)
{
	load("hash.as");
	trace("onConnect");
	application.hash = hash;
	application.fmsId = md5Check;
	trace("onConnect, performerId: " + performerId + ", pasword: " + 
		pasword + ", userId: " + userId + ", userType: " + userType + 
		", userName: ", userName + ", uniqId: " + 
		uniqId + ", sessionType: " + sessionType + ", md5Check: " + md5Check + ", truePrivate: " + truePrivate);

	// Set the number of cameras activated if performer
	if(userType == "performer")
	{
		application.cameraNo = sessionType;
		application.performer = clientObj;
	}
	
	application.initClient(clientObj);
	
	clientObj.userId = userId;
	
	clientObj.releaseStream = function() { trace("releaseStream"); };
	clientObj.FCPublish = function() { trace("FCPublish"); };
	clientObj.FCUnpublish = function() { trace("FCUnpublish"); };
		
	// TODO: Check if user isnt logged in already	
	// Variables
	application.acceptConnection(clientObj);
	clientObj.userType = userType;
	clientObj.userName = userName;
	clientObj.performerId = performerId;
	clientObj.pasword = pasword;
	clientObj.sessionType = sessionType;
	clientObj.uniqId = uniqId;
	clientObj.truePrivate = truePrivate;
	clientObj.md5Check = md5Check;
	
	if(userType == "viewer" || userType == "performer")
		application.userCheck(clientObj);
	else
		application.initClientInterval(clientObj);
};

application.initClient = function(clientObj)
{
	// Functions
	clientObj.broadcastChatLine = application.broadcastChatLine;
	clientObj.broadcastChatLineIcon = application.broadcastChatLineIcon;
	clientObj.updateTopic = application.updateTopic;
	clientObj.getTopic = application.getTopic;
	clientObj.askForNumberOfCameras = application.askForNumberOfCameras;
	clientObj.ask_song = application.ask_song;
	clientObj.change_song = application.change_song;
	clientObj.send_song = application.send_song;
	clientObj.initializeSpy = application.initializeSpy;
	clientObj.rec = application.rec;
	clientObj.recStop = application.recStop;
	clientObj.kick = application.kick;
	clientObj.ban = application.ban;
	clientObj.kickSelf = application.kickSelf;
	clientObj.banSelf = application.banSelf;
	clientObj.privateInvitation = application.privateInvitation;
	clientObj.acceptInvitation = application.acceptInvitation;
	clientObj.enterPrivate = application.enterPrivate;
	clientObj.changeSessionTypeToPrivate = application.changeSessionTypeToPrivate;
	clientObj.rejectInvitation = application.rejectInvitation;
	clientObj.tipPerfromer = application.tipPerfromer;
	clientObj.setViewerBroadcast = application.setViewerBroadcast;
	clientObj.getFmsVersion = application.getFmsVersion;
	
	if(clientObj.userType == "viewer")
	{
		clientObj.taxIntervalId = setInterval(application.checkTax, 5000, clientObj);
	}

	trace("User is ACEPTED");
}

application.initClientInterval = function(clientObj)
{
	if(clientObj.userType == "viewer")
	{
		clientObj.taxIntervalId = setInterval(application.checkTax, 5000, clientObj);
	}
	
	trace("User is ACCEPTED");
}

application.checkTax = function(client)
{
	trace("checkTax " + client.sessionType);
	
	// Check if the user has session still
	var isLoggedIn = false;
	var clients = application.clients;
	var n = clients.length;
	for(var i = 0; i < n; i++)
	{
		if(clients[i] == client)
		{
			isLoggedIn = true;
			break;
		}
	}
	
	if(!isLoggedIn)
		clearInterval(client.taxIntervalId);
	
	var taxSendLV = new LoadVars(); 
	var taxRecvLV = new LoadVars();
	taxSendLV.userId = client.userId;
	taxSendLV.userType = client.userType;
	taxSendLV.pasword = client.pasword;
	taxSendLV.uniqId = client.uniqId;
	taxSendLV.performerId = client.performerId;
	taxSendLV.truePrivate = client.truePrivate;
	taxSendLV.sessionType = (client.sessionType == "true_private") ? "private" : client.sessionType;
	taxSendLV.hash = application.hash;
	
	taxSendLV.sendAndLoad(application.baseUrl + application.taxUrl, taxRecvLV, "POST");
		
	taxRecvLV.>


Что я уже пробовал:

Все! я сделал все, чтобы это сработало, но я не позволю себе этого сделать....

Для кода строки лучше посмотреть это в postbin: главное - Pastebin.com[^]

Donny Rebecca

мне очень жаль, что код был слишком длинным, так что вы можете увидеть его здесь: http://pastebin.com/5auHcVWv

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.

Patrice T

Где находится "main. asc: линия 647"?

Donny Rebecca

приложения.getFmsVersion = функция()
{
вернуться FMS_VERSION;
}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
И скажите какая линия 647

Donny Rebecca

извините, что я отредактировал эту строку:

приложения.getFmsVersion = функция()
{
вернуться FMS_VERSION;
}

Donny Rebecca

а прямая линия до 647-это return FMS_VERSION;

1 Ответов

Рейтинг:
1

Patrice T

Если вы внимательно прочтете сообщение об ошибке, оно сообщит вам, что

Цитата:
ReferenceError: FMS_VERSION не определен
Должно быть довольно очевидно, что это значит.
В этом коде,
application.getFmsVersion = function()
{
return FMS_VERSION;
}

вы используете FMS_VERSION- но вы не сказали, что это такое. FMS_VERSION, нигде.
Либо вы должны определить, что есть FMS_VERSION или вы использовали неправильное имя.

[Обновление]
Говоря, что вы искали всю неделю, не говорите нам, что вы сделали.

Спросите себя, как вы пришли к этому FMS_VERSION ?
Ты его придумал ?
Ты где-то его нашел ? в этом случае вы знаете, где проверить, что не так.

Конечно, где-то есть какая-то документация, какие-то учебные пособия, какой-то пример кода.


Donny Rebecca

Но есть ли что-нибудь, как я могу определить эту версию? потому что версия ФМС-4.5

Patrice T

Я не использую вспышку. Спросите У Google

Donny Rebecca

Ну, я искал целую неделю... но я не могу понять, почему вы отвечаете на эту тему, Если вы не используете flash... но все равно спасибо....

Donny Rebecca

Ну, во-первых, я знаю, что я сделал не так с версией FMS, но если вы внимательно прочтете, чат не будет работать ... может быть, я что-то сделал не так, и именно поэтому я прошу этот форум решить эту проблему....

Patrice T

Приятно видеть, что вы решили эту проблему с помощью FMS_Version.
Для проблемы чата вам лучше открыть новый вопрос с новой проблемой.
И подробно расскажите о том, что пошло не так. "чат не работает" - это не информативно.