html发送websocket,如何使⽤MessageWebSocket进⾏连接
(HTML)
如何使⽤ MessageWebSocket 进⾏连接 (HTML)
12/11/2015
本⽂内容
[ 本⽂适⽤于编写 Windows 运⾏时应⽤的 Windows 8.x 和 Windows Phone 8.x 开发⼈员。如果你要针对 Windows 10 进⾏开发,请参阅 最新⽂档 ]
本主题向你展⽰ 如何使⽤ Windows 运⾏时应⽤中的 MessageWebSocket 发送和接收整个数据消息。
MessageWebSocket 类提供了 WebSocket 协议基于消息的抽象。使⽤ MessageWebSocket 时,可以在单个操作中读取或写⼊整个WebSocket 消息。相⽐之下,StreamWebSocket 允许使⽤每个读取操作读取消息各部分,⽽不是要求在单个操作中读取整个消息。
MessageWebSocket 通常⽤于消息不是⾮常⼤的情况。UTF-8 和⼆进制⽂件均受⽀持。对于 UTF-8 消息,必须使⽤MessageWebSocket。因为 StreamWebSocket 仅⽀持⼆进制消息。
先决条件
以下⽰例使⽤ JavaScript,且基于 WebSocket ⽰例。 有关创建使⽤ JavaScript 的 Windows 运⾏时应⽤的常规帮助,请参阅创建你的第⼀个使⽤ JavaScript 的 Windows 运⾏时应⽤。此外,在本主题中使⽤ JavaScript Promise 来完成异步操作。有关此编程模式的详细信息,请参阅在 JavaScript 中使⽤ Promise 进⾏异步编程。
为了使你的 Windows 运⾏时应⽤能够使⽤⽹络,你必须设置在项⽬ Package.appxmanifest ⽂件中所需的任何⽹络功能。 如果你的应⽤需要作为客户端连接到 Internet 上的远程服务,则“Internet (客户端)”功能是必需的。如果应⽤需要作为客户端连接到家庭⽹络或⼯作⽹络上的远程服务,则“家庭/⼯作⽹络”****功能是必需的。
注意 在 Windows Phone 上,只存在⼀种⽹络功能(“Internet (客户端和服务器)”),该功能⽀持对该应⽤的所有⽹络访问。
有关详细信息,请参阅如何设置⽹络功能。
使⽤ MessageWebSocket 发送数据
此部分中的代码将创建⼀个新 MessageWebSocket,连接到 WebSocket 服务器,然后将数据发送到服
务器。在成功建⽴连接后,应⽤将等待调⽤ MessageWebSocket.MessageReceived 事件,从⽽指⽰已接收数据。
注意 你可能想要向⽤户显⽰消息或者包含已发⽣事件的⽇志(例如,发起连接或发⽣错误时)。
打开 js ⽂件夹。打开你的 .js ⽂件并添加以下代码。
function startSend() {
if (!messageWebSocket) {
var webSocket = new Windows.Networking.Sockets.MessageWebSocket();
// MessageWebSocket supports both utf8 and binary messages.
// When utf8 is specified as the messageType, then the developer
// promises to only send utf8-encoded data.
// Set up callbacks
var serverAddress = new Windows.Foundation.ElementById("serverAddress").value); try {
messageWebSocket = webSocket;
// The default DataWriter encoding is utf8.
messageWriter = new Windows.Storage.Streams.DataWriter(webSocket.outputStream); messageWriter.ElementById("inputField").value);
messageWriter.storeAsync().done("", sendError);
}, function (error) {
// The connection failed; add your own code to log or display
// the error, or take a specific action.
});
websocket和socket} catch (error) {
// An error occurred while trying to connect; add your own code to
// log or display the error, or take a specific action.
}
}
else {
// The connection already exists; go ahead and send the message.
messageWriter.ElementById("inputField").value);
messageWriter.storeAsync().done("", sendError);
}
}
为 MessageWebSocket.MessageReceived 事件注册回调
将以下代码添加到 .js ⽂件中。
function onMessageReceived(args) {
// The incoming message is already buffered.
var dataReader = DataReader();
// Use the dataReader to read data from the received message
}
为 MessageWebSocket.Closed 事件注册回调
将以下代码添加到 .js ⽂件中。
function onClosed(args) {
// You can add code to log or display the code and reason
// for the closure (stored de ason)
if (messageWebSocket) {
messageWebSocket.close();
}
messageWebSocket = null;
}
摘要和后续步骤
在本教程中,我们已了解如何连接到 WebSocket 服务器以及如何使⽤ MessageWebSocket 发送和接收数据。有关展⽰如何使⽤ WebSockets 发送和接收数据的完整⽰例,请参阅 WebSocket ⽰例。
相关主题
其他
参考
⽰例
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论