Je viens de terminer une application de discussion Web basée sur ajax/php. Mais le problème avec cette application est qu'il doit continuellement interroger le serveur pour vérifier les nouveaux messages, qui à son tour surcharge le serveur si beaucoup de gens utilisent cette application simultanément. maintenant je veux implémenter une application de chat basée sur le socket en JavaScript. Je sais qu'il n'y a pas de support pour les sockets en JavaScript, donc j'ai décidé d'utiliser "Flash comme une passerelle de socket pour JavaScript" J'utilise Linux et et nouveau pour flasher. Quelqu'un peut-il m'aider avec comment y parvenir.Flash en tant que passerelle socket pour javascript
essentiellement, 1) Je veux faire un petit objet SWF qui gère simplement la logique de prise (largeur minimale et la hauteur afin que je puisse le cacher facilement avec marge -ve. 2) Je veux accéder à cet objet swf avec JavaScript
J'ai obtenu un code pour simple socket dans actionscript (à partir d'Internet) mais je ne peux pas le compiler en utilisant mxmlc (compilateur flash gratuit). Heres le code ...
myXML = new XMLSocket;
myXML.onConnect = handleConnect;
myXML.onXML = handleXML;
myXML.onClose = handleDisconnect;
myXML.connect("http://www.yourServer.com", 12345);
function handleConnect(connectionStatus){
connectionStatus ? trace("Connected.") : trace("Connection failed.");
}
function handleXML(xmlObject){
trace("Object recieved:: "+xmlObject);
}
function sendXML(textToSend){
myXML.send(new XML('"+textToSend+""));
}
function handleDisconnect(){
trace("Connection lost.");
}
function closeConnection(){
trace("Closing connection to server.");
myXML.close();
}
j'ai obtenu un meilleur code, mais cela ne compile pas aussi
package
{
import flash.errors.*;
import flash.events.*;
import flash.net.Socket;
public class ChatSocket extends Socket
{
public var host:String;
public var port:uint;
private var socket:Socket;
public static var SOCK_CONNECTED:String = "onSockConnect";
public static var SOCK_IOERROR:String = "onSockIOError";
function ChatSocket(h:String, p:uint)
{
host = h;
port = p;
socket = this;
super(host, port);
initListeners();
}
public function sendMessage(str:String):void
{
if(connected)
{
socket.writeUTFBytes(str + "\n");
}
else
{
trace("Not connected, message not sent!");
}
}
public function readMessage():void
{
if(connected)
{
var str:String = socket.readUTFBytes(socket.bytesAvailable);
trace("Socket Server Response: " + str);
}
else
{
trace("No message read, not connected!");
}
}
private function initListeners():void
{
socket.addEventListener(Event.CLOSE, closeHandler);
socket.addEventListener(Event.CONNECT, connectHandler);
socket.addEventListener(IOErrorEvent.IO_ERROR,
ioErrorHandler);
}
private function closeHandler(event:Event):void
{
trace("Connection to [" + host + "] closed");
}
private function ioErrorHandler(event:IOErrorEvent):void
{
dispatchEvent(new Event(SOCK_IOERROR));
}
private function connectHandler(event:Event):void
{
trace("Connected to [" + host + "]");
dispatchEvent(new Event(SOCK_CONNECTED));
}
private function socketDataHandler(event:ProgressEvent):void
{
readMessage();
}
}
}
var sock:ChatSocket;
sock = new ChatSocket('127.0.0.1', 9990);
sock.addEventListener(ChatSocket.SOCK_CONNECTED, connected);
sock.addEventListener(ChatSocket.SOCK_IOERROR, ioError);
function ioError(e:Event):void
{
trace("Cant connect to " + sock.host + " on port " + sock.port);
}
function connected(e:Event):void
{
sock.sendMessage("are you hungry?");
}
ERREUR EST:
localhost bin]$ ./mxmlc ChatSocket.as
Loading configuration file /home/lk/Documents/flex_sdk_3.4/frameworks/flex-config.xml
/home/lk/Documents/flex_sdk_3.4/bin/ChatSocket.as: Error: A file found in a source-path can not have more than one externally visible definition. ChatSocket;sock;ioError;connected
Quelle erreur le compilateur vous donne-t-il? – RSeidelsohn
[lk @ localhost bin] $ ./mxmlc FilledCircle.as Chargement du fichier de configuration /home/lk/Documents/flex_sdk_3.4/frameworks/flex-config.xml /home/lk/Documents/flex_sdk_3.4/bin/ FilledCircle.swf (661 bytes) [lk @ localhost bin] $ ./mxmlc try.as Chargement du fichier de configuration /home/lk/Documents/flex_sdk_3.4/frameworks/flex-config.xml /home/lk/Documents /flex_sdk_3.4/bin/try.as(13): col: 20 Erreur: Erreur de syntaxe: Une chaîne littérale doit être terminée avant le saut de ligne. –
myXML.send (new XML ('"+ textToSend +" ")); ^ /home/lk/Documents/flex_sdk_3.4/bin/try.as(21): col: 1 Erreur: Erreur de syntaxe: attente identifiant avant la fin du programme }^ /home/lk/Documents/flex_sdk_3.4/bin/try.as(21.): col: 1 erreur: erreur de syntaxe:. rightparen attendre avant la fin du programme } ^ /home/lk/Documents/flex_sdk_3.4/bin/try.as(21): col: 1 Erreur: Erreur de syntaxe: attendez la fin du programme avant la fin du programme. } ^ /home/lk/Documents/flex_sdk_3.4/bin/try.as(21): col: 1 Erreur: Erreur de syntaxe: attendre l'extrémité droite avant la fin du programme. } ^ –