🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`index.html`文件是动态产生的。在启动时,通过调用web套接字服务函数`createWebSocket()`,web-socket连接建立了与服务器的联系。在服务端,`UiWebSocketServlet`处理进入的请求,并创建一个`UiWebSocket`实例,以建立一个服务器与GUI之间的专有TCP连接。在web-socket的`onOpen()`方法调用期间,`UiExtensionService`被用来创建句柄实例,并讲它们绑定到该web-socket实例上。 ### 客户端与服务器之间的消息事件 随着Web-socket的建立,客户端和服务器可以相互发送消息。也就是,当一个事件发生时,服务器可以发送一个主动消息到客户端。 事件消息采用JSON对象格式,格式如下: ~~~ { "event": "eventType", "sid": ... , "payload": { ... } } ~~~ `Event`域是一个唯一标识事件类型的字符串。`sid`域是一个可选序列标识(单调递增的整数)。如果该标识由客户端提供,则服务端对该事件的响应保温需要复制该标识。注意,服务器初始事件不包含一个`sid`域。`Payload`域是任何JSON对象,根据不同的事件类型,其结构不同。许多`payloads`包含一个`id`域,持有该事件描述的项目的唯一ID。