如果只是模擬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;}