websocket怎么连接?
2021年02月10日 11:46:54 作者: 智链云谷科技有限公司

如果只是模拟js端发送接收的话,已经有了websocket server的话,只有client就好了pip install websocket-clientwebsocket_client.py(客户端)    #-*- encoding:utf-8 -*- import syssys.path.append("..")from socket import *import json, time, threadingfrom websocket import create_connectionreload(sys)sys.setdefaultencoding("utf8") # config = {#     'HOST': '127.0.0.1',#     'PORT': 10010# }#pip install websocket-client class Client():    def __init__(self):        #调用create_connection方法,建立一个websocket链接,链接是自己的链接        self.ws = create_connection("ws://127.0.0.1:10010/xxxx")        #建一个线程,监听服务器发送给客户端的数据        self.trecv = threading.Thread(target=self.recv)        self.trecv.start()     #发送方法,聊天输入语句时调用,此处默认为群聊ALL    def send(self,content):        #这里的msg要根据实际需要自己写        msg={            "type":"POST",            "content":content        }        msg = json.mps(msg)        self.ws.send(msg)     #接收服务端发送给客户的数据,只要ws处于连接状态,则一直接收数据    def recv(self):        try:            while self.ws.connected:                result = self.ws.recv()                print "received msg:"+str(result)        except Exception,e:            pass  if __name__ == '__main__':     c= Client()    #建立链接后,就可以按照需要自己send了    c.send(content) 先决条件:以下示例使用 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 文件并添加以下代码。JavaScriptfunction 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.webSocket.control.messageType = Windows.Networking.Sockets.SocketMessageType.utf8;// Set up callbackswebSocket.onmessagereceived = onMessageReceived;webSocket.onclosed = onClosed;var serverAddress = new Windows.Foundation.Uri(document.getElementById("serverAddress").value);try {webSocket.connectAsync(serverAddress).done(function () {messageWebSocket = webSocket;// The default DataWriter encoding is utf8.messageWriter = new Windows.Storage.Streams.DataWriter(webSocket.outputStream);messageWriter.writeString(document.getElementById("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.});} 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.writeString(document.getElementById("inputField").value);messageWriter.storeAsync().done("", sendError);}}为 MessageWebSocket.MessageReceived 事件注册回调发生 MessageWebSocket.MessageReceived 事件时,会调用所注册的回调并接收来自 MessageWebSocketMessageReceivedEventArgs 的数据。将以下代码添加到 .js 文件中。JavaScriptfunction onMessageReceived(args) {// The incoming message is already buffered.var dataReader = args.getDataReader();// Use the dataReader to read data from the received message}为 MessageWebSocket.Closed 事件注册回调发生 MessageWebSocket.Closed 事件时,会调用所注册的回调并接收来自 WebSocketClosedEventArgs 的数据以关闭连接。将以下代码添加到 .js 文件中。JavaScriptfunction onClosed(args) {// You can add code to log or display the code and reason// for the closure (stored in args.code and args.reason)if (messageWebSocket) {messageWebSocket.close();}messageWebSocket = null;}

上一篇 下一篇
19960511267