跳到主要内容

webgl.websocket

简介

WebGL 平台专用的 WebSocket 客户端实现 由于 WebGL 平台不支持原生 WebSocket 库,本模块通过 togs 的 wrapper 调用 unity NativeWebSocket 封装的 JavaScript WebSocket API, 以实现 WebSocket 客户端功能。

组件接口

websocket.gs

函数原型函数作用
bool is_ws_client()我是websocket client对象
void connect(string uri)连接指定的主机
void disconnect()断开连接
string remote_address()获取该连接对象的远程地址信息
bool send(mixed payload)发送数据
bool send_text(string payload)发送文本数据
bool send_binary(buffer payload)发送二进制数据
bool send_ping(string payload = "ping")ping/pong机制中用于发送一个PING包
bool send_pong(string payload = "pong")ping/pong机制中用于发送一个PONG包
void bind_value(mixed value)绑定一个关联值
mixed get_bind_value()获取和本对象绑定的值
void enable_debug(bool flag)打开/关闭调试
void set_callback(string type, function callback)设置连接对象的触发事件的回调处理
void run()在当前线程中运行该连接对象
coroutine run_in_thread()在独立的线程中运行该连接对象

样例

void on_client_receive(object server, mixed payload)
{
printf("on_client_receive: %O\n", payload);
}

public void test()
{

object client_obj = new_object(WebSocketClient, nil,{});
client_obj.set_callback("message", (: on_client_receive :));
client_obj.set_callback("event", (...){
write($<, "\n");
});
client_obj.connect("ws://localhost:5117");
client_obj.run_in_thread();
write("Client connected.\n");
client_obj.send_text("Hello from client!");
write("Message sent.\n");
client_obj.close();
}