の間で循環ばかり。 ... ソケットがグローバルで宣言され、この関数によって呼び出される クライアントを以下のように、クライアントとサーバーのコードが見えます。私は、phpやC++のsocket.soでうまく動作するソケット用のサードパーティAPIを使用しています。確かにAPIベースのバグではありません。 Jparseが 係るサーバによって送信されたJSONを解析し、データをsocket.send(入力)を使用して送信される関数であるのNode.jsは、データは私が 「ネット」モジュールを用いた小型のNode.jsサーバーを書いた前後に、サーバーとクライアント
function SocketAPI()
{
socket.onConnect = function(success)
{
if(success)
{
Connected = true;
}else{
alert("Failed to connect to server!");
}
}
socket.onClose = function()
{
alert("Connection lost to server!");
}
socket.onData = function(text)
{
if(text==">Send_AuthenTication")
{ // Tells the client to send authentication data
if(localStorage.ID)
{
socket.send(">"+localStorage.ID); //encrypted
}else{
socket.send("<");
}
}else if(text.substr(0,2)==">>"){
// User inforamation accept and apply it
Packet = JSON.parse(text.substr(2,text.length-2));
while(Users.length){ // users is an array which contains other peers connected to the server
Users.pop();
}
me = Packet;
me.Prepare();
Users.push(me.NameBOX);
Usrlst.ShowTab(0);
// Now make the socket only listen for output buffer.
socket.onData = function(Data){
//alert(Data);
setTimeout(Jparse,100, Data);
}
}
}
socket.connect('localhost',1337);// makes connection
}
。
とサーバーは、次のようになります::
..
var server = net.createServer(function(socket){
socket.setEncoding('utf8');
socket.Peer = new Client();
socket.on('data',function(Data){
if(Data[0]==">") // this tells that the request is authentication event
{
// Loads from Pool
}else if(Data[0]=="<"){
NewUSER(this.Peer); // Makes new user
}
this.write(">>"+JSON.stringify(this.Peer)+"\0","utf8",function(){});
this.on('data',function(Data){
console.log(Data);
this.write(Data,'utf8',function(){});
});
});
socket.on('end',function(){
console.log("Connection End");
});
// Socket Closed by client/errors
socket.on('close',function(error){
console.log("Connection is closed by Had errors?:"+error);
});
// Handshake started
socket.on("connect",function()
{ // add server connection in here aha we now have a new user.
sys.puts("Connection from"+ socket.remoteAddress);
this.write(">Send_AuthenTication\0",'utf8',function(){});
});
});
// starting the server.
server.listen(1337,"localhost");
私はクライアントのHTMLページにデータを使用してデータを送信し、サーバーに行くと、そのはになって戻ってくるが、プロセスになります再発と私は
が言う..同じiは、サーバとクライアントを意味両側に、その後もう一度受け取っ得ます。私が "hello"をクライアントから送信すると、サーバーからクライアント側に2〜3回 "hello"が返ってきます。ちょうど気付いたのは、データをサーバーに送信するたびに増加するrecurrsionsの数です。
誰もがいただきました!間違ったの手掛かりを得ましたか。
ではなく、直接イベントに – ShrekOverflow