[]Socket连接不上(已解决)
socket = new Socket();
socket.on(Event.OPEN, this, onSocketOpen); socket.connect("127.0.0.1", 8080);
照着官方例子,服务器显示连接上了,但onSocketOpen没调用到,而且socket的connected为false。
能帮忙看是什么原因么?
具体代码:
package
{
import laya.display.Text;
import laya.events.Event;
import laya.net.Socket;
import laya.utils.Byte;
import laya.utils.Log;
import laya.webgl.WebGL;
// import laya.webgl.WebGL;
public class LayaDemo
{
private var socket:Socket;
private var output:Byte;
private var txt:Text;
public function LayaDemo()
{
Laya.init(600, 300, WebGL);
txt = new Text();
txt.text = "This is a demo";
txt.color = "#FF0000";
txt.fontSize = 50;
txt.stroke = 3;
txt.strokeColor = "#FFFFFF";
txt.pos(50, 100);
Laya.stage.addChild(txt);
socket = new Socket();
output = socket.output;
socket.on(Event.OPEN, this, onSocketOpen);
socket.on(Event.CLOSE, this, onSocketClose);
socket.on(Event.MESSAGE, this, onMessageReveived);
socket.on(Event.ERROR, this, onConnectError);
socket.connect("127.0.0.1", 8080);
// txt.text = "Start conect";
Laya.timer.loop(1000, this, checkSocket);
}
private function checkSocket(e:* = null):void{
txt.text = socket.connected ? "Now connect" : "Not conect";
}
private function onSocketOpen(e:*=null):void
{
txt.text = "Socket open";
}
private function onSocketClose(e:*=null):void
{
Log.print("Socket closed");
}
private function onMessageReveived(message:*=null):void
{
Log.print("Message from server:");
if (message is String)
{
Log.print(message);
}
else if (message is ArrayBuffer)
{
Log.print(new Byte(message).readUTFBytes());
}
socket.input.clear();
}
private function onConnectError(e:Event=null):void
{
Log.print("error");
txt.text = "Socket error";
}
}
}
如果连接有返回,txt的文本应该为Socket open,但一直没有变动,还是This is a demo,而服务器关闭后,txt的文本就变为Socket error!
已经发现是服务器问题,问题解决~~~
socket.on(Event.OPEN, this, onSocketOpen); socket.connect("127.0.0.1", 8080);
照着官方例子,服务器显示连接上了,但onSocketOpen没调用到,而且socket的connected为false。
能帮忙看是什么原因么?
具体代码:
package
{
import laya.display.Text;
import laya.events.Event;
import laya.net.Socket;
import laya.utils.Byte;
import laya.utils.Log;
import laya.webgl.WebGL;
// import laya.webgl.WebGL;
public class LayaDemo
{
private var socket:Socket;
private var output:Byte;
private var txt:Text;
public function LayaDemo()
{
Laya.init(600, 300, WebGL);
txt = new Text();
txt.text = "This is a demo";
txt.color = "#FF0000";
txt.fontSize = 50;
txt.stroke = 3;
txt.strokeColor = "#FFFFFF";
txt.pos(50, 100);
Laya.stage.addChild(txt);
socket = new Socket();
output = socket.output;
socket.on(Event.OPEN, this, onSocketOpen);
socket.on(Event.CLOSE, this, onSocketClose);
socket.on(Event.MESSAGE, this, onMessageReveived);
socket.on(Event.ERROR, this, onConnectError);
socket.connect("127.0.0.1", 8080);
// txt.text = "Start conect";
Laya.timer.loop(1000, this, checkSocket);
}
private function checkSocket(e:* = null):void{
txt.text = socket.connected ? "Now connect" : "Not conect";
}
private function onSocketOpen(e:*=null):void
{
txt.text = "Socket open";
}
private function onSocketClose(e:*=null):void
{
Log.print("Socket closed");
}
private function onMessageReveived(message:*=null):void
{
Log.print("Message from server:");
if (message is String)
{
Log.print(message);
}
else if (message is ArrayBuffer)
{
Log.print(new Byte(message).readUTFBytes());
}
socket.input.clear();
}
private function onConnectError(e:Event=null):void
{
Log.print("error");
txt.text = "Socket error";
}
}
}
如果连接有返回,txt的文本应该为Socket open,但一直没有变动,还是This is a demo,而服务器关闭后,txt的文本就变为Socket error!
已经发现是服务器问题,问题解决~~~
没有找到相关结果
已邀请:
要回复问题请先登录
5 个回复
Laya_XS
赞同来自:
hoolive
赞同来自:
{
import laya.display.Text;
import laya.events.Event;
import laya.net.Socket;
import laya.utils.Byte;
import laya.utils.Log;
import laya.webgl.WebGL;
// import laya.webgl.WebGL;
public class LayaDemo
{
private var socket:Socket;
private var output:Byte;
private var txt:Text;
public function LayaDemo()
{
Laya.init(600, 300, WebGL);
txt = new Text();
txt.text = "This is a demo";
txt.color = "#FF0000";
txt.fontSize = 50;
txt.stroke = 3;
txt.strokeColor = "#FFFFFF";
txt.pos(50, 100);
Laya.stage.addChild(txt);
socket = new Socket();
output = socket.output;
socket.on(Event.OPEN, this, onSocketOpen);
socket.on(Event.CLOSE, this, onSocketClose);
socket.on(Event.MESSAGE, this, onMessageReveived);
socket.on(Event.ERROR, this, onConnectError);
socket.connect("127.0.0.1", 8080);
// txt.text = "Start conect";
Laya.timer.loop(1000, this, checkSocket);
}
private function checkSocket(e:* = null):void{
txt.text = socket.connected ? "Now connect" : "Not conect";
}
private function onSocketOpen(e:*=null):void
{
txt.text = "Socket open";
}
private function onSocketClose(e:*=null):void
{
Log.print("Socket closed");
}
private function onMessageReveived(message:*=null):void
{
Log.print("Message from server:");
if (message is String)
{
Log.print(message);
}
else if (message is ArrayBuffer)
{
Log.print(new Byte(message).readUTFBytes());
}
socket.input.clear();
}
private function onConnectError(e:Event=null):void
{
Log.print("error");
txt.text = "Socket error";
}
}
}
代码如上:
如果连接有返回,txt的文本应该为Socket open,但一直没有变动,还是This is a demo,而服务器关闭后,txt的文本就变为Socket error!
qqzp63168
赞同来自:
我遇到了同样的问题。
qqzp63168
赞同来自:
我这边用的netty4.x
下面是管道处理流程
Smile~
赞同来自: