websocket python unity_基于SuperSocket实现的WebSocket服务器和Unity中使用Websocket

class Program

static void Main(string[] args)

Console.WriteLine("Press any key to start the WebSocketServer!");

Console.ReadKey();

Console.WriteLine();

var appServer = new WebSocketServer();

//Setup the appServer

if (!appServer.Setup(2012)) //Setup with listening port

Console.WriteLine("Failed to setup!");

Console.ReadKey();

return;

appServer.NewSessionConnected = delegate(WebSocketSession session)

Console.WriteLine("新玩家加入: " session.SessionID);

session.Send("新玩家加入: " session.SessionID);

};

appServer.SessionClosed = delegate(WebSocketSession session, CloseReason value)

Console.WriteLine("玩家离开: " session.SessionID);

session.Send("玩家离开: " session.SessionID);

};

appServer.NewMessageReceived = delegate(WebSocketSession session, string value)

Console.WriteLine(session.SessionID "说话: " value);

session.Send(session.SessionID "说话: " value);

};

Console.WriteLine();

//Try to start the appServer

if (!appServer.Start())

Console.WriteLine("Failed to start!");

Console.ReadKey();

return;

Console.WriteLine("The server started successfully, press key 'q' to stop it!");

while (Console.ReadKey().KeyChar != 'q')

Console.WriteLine();

continue;

//Stop the appServer

appServer.Stop();

Console.WriteLine();

Console.WriteLine("The server was stopped!");

Console.ReadKey();

在 Unity中的实例代码:

using System;

using UnityEngine;

using BestHTTP;

using BestHTTP.WebSocket;

public class WebSocketSample : MonoBehaviour

#region Private Fields

///

/// The WebSocket address to connect

///

string address = "ws://127.0.0.1:2012";// "ws://echo.websocket.org";

///

/// Default text to send

///

string msgToSend = "Hello World!";

///

/// Debug text to draw on the gui

///

string Text = string.Empty;

///

/// Saved WebSocket instance

///

WebSocket webSocket;

///

/// GUI scroll position

///

Vector2 scrollPos;

#endregion

#region Unity Events

void OnDestroy()

if (webSocket != null)

webSocket.Close();

void OnGUI()

scrollPos = GUILayout.BeginScrollView(scrollPos);

GUILayout.Label(Text);

GUILayout.EndScrollView();

GUILayout.Space(5);

GUILayout.FlexibleSpace();

address = GUILayout.TextField(address);

if (webSocket == null && GUILayout.Button("Open Web Socket"))

// Create the WebSocket instance

webSocket = new WebSocket(new Uri(address));

if (HTTPManager.Proxy != null)

webSocket.InternalRequest.Proxy = new HTTPProxy(HTTPManager.Proxy.Address, HTTPManager.Proxy.Credentials, false);

// Subscribe to the WS events

webSocket.OnOpen = OnOpen;

webSocket.OnMessage = OnMessageReceived;

webSocket.OnClosed = OnClosed;

webSocket.OnError = OnError;

// Start connecting to the server

webSocket.Open();

Text = "Opening Web Socket...\n";

if (webSocket != null && webSocket.IsOpen)

GUILayout.Space(10);

GUILayout.BeginHorizontal();

msgToSend = GUILayout.TextField(msgToSend);

if (GUILayout.Button("Send", GUILayout.MaxWidth(70)))

Text = "Sending message...\n";

// Send message to the server

webSocket.Send(msgToSend);

GUILayout.EndHorizontal();

GUILayout.Space(10);

if (GUILayout.Button("Close"))

// Close the connection

webSocket.Close(1000, "Bye!");

#endregion

#region WebSocket Event Handlers

///

/// Called when the web socket is open, and we are ready to send and receive data

///

void OnOpen(WebSocket ws)

Text = string.Format("-WebSocket Open!\n");

///

/// Called when we received a text message from the server

///

void OnMessageReceived(WebSocket ws, string message)

Text = string.Format("-Message received: {0}\n", message);

///

/// Called when the web socket closed

///

void OnClosed(WebSocket ws, UInt16 code, string message)

Text = string.Format("-WebSocket closed! Code: {0} Message: {1}\n", code, message);

webSocket = null;

///

/// Called when an error occured on client side

///

void OnError(WebSocket ws, Exception ex)

string errorMsg = string.Empty;

if (ws.InternalRequest.Response != null)

errorMsg = string.Format("Status Code from Server: {0} and Message: {1}", ws.InternalRequest.Response.StatusCode, ws.InternalRequest.Response.Message);

Text = string.Format("-An error occured: {0}\n", (ex != null ? ex.Message : "Unknown Error " errorMsg));

webSocket = null;

#endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值