deeke-script-app 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@deekeScript/@type/Class/Global.d.ts +1 -0
- package/@deekeScript/@type/interface/SocketIOClient.d.ts +76 -0
- package/@deekeScript/@type/interface/Storage.d.ts +1 -1
- package/package.json +2 -1
- package/test/SocketIOClient.js +44 -0
- package/test/SocketIOServer.js +46 -0
- package/test/Storage.js +3 -0
- package/test/engines/1.js +2 -0
- package/test/engines/engines.js +6 -0
- package/test/engines/test.js +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type Storage = Storage;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
global {
|
|
2
|
+
var SocketIOClient: socketIOClient;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
interface socketIOClient {
|
|
6
|
+
/**
|
|
7
|
+
* 获取socketIOClient实例
|
|
8
|
+
* @param serverUrl socketIOServer地址
|
|
9
|
+
* @param reconnect 是否自动重连(默认为true)
|
|
10
|
+
* @param timeout 重连超时时间(毫秒)(默认为5000毫秒)
|
|
11
|
+
*/
|
|
12
|
+
public getInstance(serverUrl: string, reconnect: boolean = true, timeout: number = 5000): socketIOClient;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 连接socketIOServer
|
|
16
|
+
*/
|
|
17
|
+
public connect(): void;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 断开socketIOServer
|
|
21
|
+
*/
|
|
22
|
+
public disconnect(): void;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 是否已连接
|
|
26
|
+
*/
|
|
27
|
+
public isConnected(): boolean;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 向服务器发送事件和数据
|
|
31
|
+
* @param eventName 事件名称
|
|
32
|
+
* @param data 数据
|
|
33
|
+
*/
|
|
34
|
+
public emit(eventName: string, data: string): void;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 向服务器发送事件和数据
|
|
38
|
+
* @param eventName 事件名称
|
|
39
|
+
* @param data 数据
|
|
40
|
+
* @param callback 服务器确认后的回调函数
|
|
41
|
+
*/
|
|
42
|
+
public emit(eventName: string, data: string, callback: function): void;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 监听事件
|
|
46
|
+
* @param eventName
|
|
47
|
+
* @param callback
|
|
48
|
+
*/
|
|
49
|
+
public on(eventName: string, callback: (data: string) => void): void;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 移除事件监听器
|
|
53
|
+
* @param eventName
|
|
54
|
+
* @param callback
|
|
55
|
+
*/
|
|
56
|
+
public off(eventName: string, callback: (data: string) => void): void;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 移除事件监听器
|
|
60
|
+
* @param eventName
|
|
61
|
+
*/
|
|
62
|
+
public off(eventName: string): void;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 移除所有事件监听器
|
|
66
|
+
*/
|
|
67
|
+
public off(): void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* 重置当前实例的是否重连
|
|
71
|
+
* @param bool 是否自动重连
|
|
72
|
+
*/
|
|
73
|
+
public setReconnect(bool: boolean): void;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deeke-script-app",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "DeekeScript应用",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"adm-zip": "^0.5.16",
|
|
38
38
|
"cpx": "^1.5.0",
|
|
39
|
+
"socket.io": "^4.8.1",
|
|
39
40
|
"ts-node": "^10.9.2"
|
|
40
41
|
}
|
|
41
42
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
let socketIOClient = SocketIOClient.getInstance("http://192.168.0.111:3000");
|
|
2
|
+
|
|
3
|
+
socketIOClient.on("connect_error", (error) => {
|
|
4
|
+
console.error("连接错误:", error);
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
socketIOClient.on("error", (error) => {
|
|
8
|
+
console.error("通用错误:", error);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
socketIOClient.on("connect_timeout", () => {
|
|
12
|
+
console.error("连接超时");
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
socketIOClient.on('connect', () => {
|
|
16
|
+
console.log('connected!', 1);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
socketIOClient.on("connect2", function () {
|
|
22
|
+
console.log('是否连接成功:', socketIOClient.isConnected());
|
|
23
|
+
socketIOClient.on("message", function (data) {
|
|
24
|
+
console.log('服务端发来的消息:', data);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
let str = JSON.stringify({
|
|
28
|
+
name: "DeekeScript",
|
|
29
|
+
age: 3,
|
|
30
|
+
other: {
|
|
31
|
+
sex: ["男"]
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
socketIOClient.emit("message", str, function (data) {
|
|
35
|
+
console.log('确认参数', data);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
socketIOClient.connect();
|
|
40
|
+
|
|
41
|
+
while (true) {
|
|
42
|
+
System.sleep(1000);
|
|
43
|
+
console.log('防止脚本终止');
|
|
44
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const { Server } = require("socket.io");
|
|
2
|
+
const readline = require("readline");
|
|
3
|
+
|
|
4
|
+
const io = new Server("3000", {
|
|
5
|
+
cors: {
|
|
6
|
+
origin: "*",
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
io.on("connection", (socket) => {
|
|
11
|
+
console.log(`客户端已连接: ${socket.id}`);
|
|
12
|
+
|
|
13
|
+
socket.on("message", (data) => {
|
|
14
|
+
console.log("收到客户端消息:", data);
|
|
15
|
+
console.log(data.name);
|
|
16
|
+
socket.emit("message", data);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
socket.on("disconnect", () => {
|
|
20
|
+
console.log(`客户端断开连接: ${socket.id}`);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
console.log("Socket.IO 服务启动,监听端口 3000");
|
|
25
|
+
|
|
26
|
+
// 创建命令行接口,监听输入
|
|
27
|
+
const rl = readline.createInterface({
|
|
28
|
+
input: process.stdin,
|
|
29
|
+
output: process.stdout,
|
|
30
|
+
prompt: '请输入服务器消息> '
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
rl.prompt();
|
|
34
|
+
|
|
35
|
+
rl.on('line', (line) => {
|
|
36
|
+
const msg = line.trim();
|
|
37
|
+
if(msg.length > 0) {
|
|
38
|
+
// 给所有客户端广播 message 事件
|
|
39
|
+
io.emit('message', msg);
|
|
40
|
+
console.log(`已广播消息: ${msg}`);
|
|
41
|
+
}
|
|
42
|
+
rl.prompt();
|
|
43
|
+
}).on('close', () => {
|
|
44
|
+
console.log('服务器输入关闭,退出程序');
|
|
45
|
+
process.exit(0);
|
|
46
|
+
});
|
package/test/Storage.js
ADDED