JavaScript 请求与数据的连接
JavaScript request connection with data
我的任务是创建 javascript 实时应用程序。服务器端已准备就绪(wss://),我必须创建客户端。
我遇到问题的主要任务:
客户端可以 ping 服务器来检查您的连接。客户端执行 ping,包括序列号(允许跟踪确切的 ping 持续时间)。
{
"$type": "ping",
"seq": 1
}
服务器将响应:
{
"$type": "pong",
"seq": 1
}
客户请求
{
"$type": "subscribe_tables"
}
服务器将响应表列表,并在状态发生变化时用 table_added、table_removed 和 table_updated 消息更新客户端。
{
"$type": "table_list",
"tables": [
{
"id": 1,
"name": "table 1",
"description" : "one, two"
}, {
"id": 2,
"name": "table 2"
"description" : "two, three"
}
]
}
table_updated 事件
{
"$type": "update_table",
"table": {
"id": 3,
"name": "table - Foo Fighters",
"participants": 4
}
}
问题: 我知道,我可以使用 new EventSource()
,这是正确的吗?我如何发送数据 $type
,例如用它发送数据?
I know, that I can use new EventSource(), is this correct? How can I
send data $type, for example with it?
不,那是不正确的。如果您的服务器需要一个 webSocket 连接,那么您可以从客户端使用 new WebSocket(...)
来建立从客户端到服务器的连接。 EventSource()
对象用于服务器端事件,这是与 webSocket 完全不同的传输方式。
您可以查看使用 webSocket 的编程示例 here on MDN。
此外,如果您尝试将 Javascript 个对象作为数据发送,您通常会使用 JSON.stringify()
将它们序列化为一个字符串,然后发送,然后在接收端,您会使用 JSON.parse()
将 JSON 字符串解析回 Javascript 对象。这就是您在同一封邮件中发送 $type
等信息以及其他数据的方式。
仅供参考,socket.io 是一个建立在 webSocket 之上的库,它已经变得非常流行,因为它自动为您做了很多 webSocket 编程通常需要的事情,例如 JSON 序列化, 自动重连, 自动keep alive, 连接掉线检测等等...你当然不用在client和server中使用它,但它通常会节省很多时间。
我的任务是创建 javascript 实时应用程序。服务器端已准备就绪(wss://),我必须创建客户端。
我遇到问题的主要任务:
客户端可以 ping 服务器来检查您的连接。客户端执行 ping,包括序列号(允许跟踪确切的 ping 持续时间)。
{
"$type": "ping",
"seq": 1
}
服务器将响应:
{
"$type": "pong",
"seq": 1
}
客户请求
{
"$type": "subscribe_tables"
}
服务器将响应表列表,并在状态发生变化时用 table_added、table_removed 和 table_updated 消息更新客户端。
{
"$type": "table_list",
"tables": [
{
"id": 1,
"name": "table 1",
"description" : "one, two"
}, {
"id": 2,
"name": "table 2"
"description" : "two, three"
}
]
}
table_updated 事件
{
"$type": "update_table",
"table": {
"id": 3,
"name": "table - Foo Fighters",
"participants": 4
}
}
问题: 我知道,我可以使用 new EventSource()
,这是正确的吗?我如何发送数据 $type
,例如用它发送数据?
I know, that I can use new EventSource(), is this correct? How can I send data $type, for example with it?
不,那是不正确的。如果您的服务器需要一个 webSocket 连接,那么您可以从客户端使用 new WebSocket(...)
来建立从客户端到服务器的连接。 EventSource()
对象用于服务器端事件,这是与 webSocket 完全不同的传输方式。
您可以查看使用 webSocket 的编程示例 here on MDN。
此外,如果您尝试将 Javascript 个对象作为数据发送,您通常会使用 JSON.stringify()
将它们序列化为一个字符串,然后发送,然后在接收端,您会使用 JSON.parse()
将 JSON 字符串解析回 Javascript 对象。这就是您在同一封邮件中发送 $type
等信息以及其他数据的方式。
仅供参考,socket.io 是一个建立在 webSocket 之上的库,它已经变得非常流行,因为它自动为您做了很多 webSocket 编程通常需要的事情,例如 JSON 序列化, 自动重连, 自动keep alive, 连接掉线检测等等...你当然不用在client和server中使用它,但它通常会节省很多时间。