📚 Native/Socket

Socket类是开发阶段常用功能,可进行网络\HTTP\套接字等相关操作。

注意:为了考虑玩家用户的体验,模组开发者应避免请求令人反感的内容。

任何Socket操作仅在当前场景生效,基于Native机制可同时在World\Client互通使用,场景切换后将被自动清除。

📒 Static Event

📘 OnHTTPDataReceive( data, url, tag )

HTTP/GET OR POST请求返回数据时调用。

function OnHTTPDataReceive( data: string, url: string, tag: string )
Socket.HTTPGet("https://www.google.com/", "myGet");
 
function OnHTTPDataReceive(data, url, tag)
{
	//Get 'https://www.google.com/' (Tag: 'myGet')
    if(tag == "myGet")
    {
        //XXX
        DLog(data);
    }
}

📘 OnServerQueryReceive( data, address )

当服务器接收到Query\Gamespy数据时调用(格式必须是\xxx\使用反斜杠包围)。

引擎内置数据指令(例如querystats等)不会触发此事件。

注意:这是一个仅服务端可用的事件与方法。

function OnServerQueryReceive( data: string, address: string )

📒 Static Function

📘 Socket.HTTPGet()

发送一个HTTP/Get请求,超时时间为5000ms

function Socket.HTTPGet( url: string, tag: string = "" )
Socket.HTTPGet("https://www.google.com/");
Socket.HTTPGet("https://www.google.com/", "myGet");

📘 Socket.HTTPPost()

发送一个HTTP/Post请求,超时时间为5000ms

function Socket.HTTPPost( url: string, data: string, tag: string = "" )
Socket.HTTPPost("https://www.google.com/", "JsonOrText");
Socket.HTTPPost("https://www.google.com/", "JsonOrText", "myPost");

📘 SendSocketData()

发送Socket\Network网络通信数据。

在当前版本下,此方法主要用于外部UDP传输。

对应接收事件:OnDataServerReceive

注意:这是一个仅服务端可用的事件与方法。

//Address=IP:Port
function SendSocketData( address: string, data: string )
SendSocketData("127.0.0.1:8192", "Test");

📒 网络扩展

引擎World端内置了一套DataServer数据服务器系统,使用其相关功能可实现外部UDP与服务器之间的交互通信,详情参考《World/Main》文档(Socket关键字)。