网络
Lua_Http_GetHttpData(url)
获取指定网址的数据
参数 | 说明 | 类型 |
url | 获取数据的网址 | string |
local HttpData = Lua_Http_GetHttpData('https://luascript.alcedo.top/')
推荐用于获取json等网络接口数据,json可使用lua的json库解析成table,例如
注意:此段为节选代码,仅供参考,请不要直接使用
json = require "nativePC/LuaScript/Common/json"
function run ()
local GetHttp = Lua_Http_GetHttpData('https://luascript.alcedo.top/link/?link=ad9582c0-15ed-4e65-a8e8-ac188622f8ae')
local HttpData = json.decode(GetHttp)
for _, Data in pairs(HttpData) do
local LuaCode = Lua_Http_GetHttpData(Data.LuaCode)
end
end
Lua_WS_LinkWSServer(wsurl)
链接到指定的websocket服务器
参数 | 说明 | 类型 |
wsurl | 服务器ws地址 | string |
Lua_WS_LinkWSServer('ws://localhost:3010/api')
以下为一个聊天mod的演示程序,包含websocket的基本使用方式演示
/*
部署:
1. 按照node和npm/yarn
2. 在服务脚本目录下执行npm install ws或yarn add ws
3. 执行node server.js命令
*/
"use strict";
var WebSocketServer = require('ws').Server;
var http = require('http');
var server = http.createServer();
var wss = new WebSocketServer({server: server, path: '/foo'});
wss.broadcast = function broadcast(ws) {
wss.clients.forEach(function each(client) {
client.send(ws.msg);
});
};
wss.on('connection', function(ws) {
console.log('/foo connected');
ws.on('message', function(data, flags) {
if (flags != undefined && flags.binary) { return; }
console.log('>>> ' + data);
wss.broadcast({
msg:data
});
});
ws.on('close', function() {
console.log('Connection closed!');
});
ws.on('error', function(e) {
});
});
server.listen(3010);
console.log('服务已启动,端口:3010');
UserConfig = {
UserName = 'Guest'
Serve= 'ws://localhost:3010/foo'
Reconnect = true
ReconnectTime = 3.0
}
json = require "nativePC/LuaScript/Common/json"
function run ()
if Lua_Variable_ReadIntVariable('init') == 1 then
--断线重连
if not System_Chronoscope_CheckPresenceChronoscope('WSS_Reconnect') and UserConfig.Reconnect then
if not Lua_WS_GetLinkState() then
Lua_WS_LinkWSServer(UserConfig.Serve)
System_Chronoscope_AddChronoscope(UserConfig.ReconnectTime,'WSS_Reconnect')
end
end
--发送消息
local GameMessage = Game_World_Message()
if GameMessage ~= ''
and GameMessage ~= Lua_Variable_ReadStringVariable('tempMessage')
then
local SendMessage = json.encode({
name = UserConfig.UserName,
message = GameMessage
})
Lua_WS_SendMessage(SendMessage)
Lua_Variable_SaveStringVariable('tempMessage',GameMessage)
end
--获取服务器消息
local WWSData = Lua_WS_GetMessage()
if WWSData ~= '' then
local MessageData = json.decode(WWSData)
if MessageData.name ~= UserConfig.UserName then
System_Message_ShowMessage(MessageData.name..':'..MessageData.message)
end
end
else
Lua_WS_LinkWSServer(UserConfig.Serve)
Lua_Variable_SaveIntVariable('init', 1)
end
--过期删除计时器
System_Chronoscope_CheckChronoscope('WSS_Reconnect')
end
Lua_WS_GetLinkState()
获取当前链接状态
if Lua_WS_GetLinkState() then end
Lua_WS_GetMessage()
获取服务器返回数据堆栈中的一条数据
local WWSData = Lua_WS_GetMessage()
Lua_Http_DownloadFile(url,file)
获取文件MD5
参数 | 说明 | 类型 |
url | 下载地址 | string |
file | 保存文件路径 | string |
Lua_Http_DownloadFile('http://test.com/test.zip','downloadTEST.ZIP')
最后更新于