server | v3 switch to v4
- SDK: 22.214.171.12474
- Released: 2014-02-19
- Photon Native Core v.126.96.36.1991
Photon Native Core V.188.8.131.521
- PSCS-1415: Photon Redistributable (with redistributable licenses) SDK
- PSCS-1761: Support for RHTTP in Photon
- PSCS-1715: New "ENet client timeout disconnect" performance counters
- PSCS-1538: Policy file handling with native policy listener (Policy application no longer required)
- PSCS-1689: TCP Listeners support a configurable prefix / suffic on all initial connect headers
- PSCS-1804: Default shutdown timeout of 30 seconds.
- PSCS-1701: Added Photon shutdown timeouts, failure to shutdown cleanly in time results in a call to ExitProcess...
- PSCS-1692: Added application startup/restart/shutdown timeouts
- PSCS-1612: New performance counters for timer queues
- PSCS-1383: Support for config file (photonsocketserver.exe.config) located in same directory as the exe file.
- PSCS-1418: Added "AbortConnection()" for timeout on tcp listener which is called even if a peer doesn't exist yet - MAY release policy connections (but not peers)...
- PSCS-1500: Major changes of the underlying Photon network stack
- PSCS-1420: Significant broadcasting improvements
- PSCS-1391: PhotonControl: improved public IP lookup
- PSCS-1795: Added .NET version string to the error reported when Photon fails to start
- PSCS-1646: Incremented max protocol version number to 1.7 to support the new binary protocol
- PSCS-1536: Changes to prevent "Disconnected Peers (S)" leak
- PSCS-1537: Removed "auto nagle" accumulation during flow control
- PSCS-1468: Changed how we manage a peer's address to avoid any potential ref count leak on the address
- PSCS-1243: Changes to S2S MUX flow control auto tune.
- PSCS-1383: When attempting to obtain the strong name interface from the new v4 CLR methods we now fall back to loading the latest runtime available if the one that the Photon runtime was built with isn't available
- PSCS-1703: Lazy allocate ENet flow control buffers. Prevents "Out of memory" exceptions in case of large amounts of idle UDP peers.
- PSCS-1779: Hang on Shutdown
- PSCS-1822: UDP: ACKs with bad recv sent time are only logged, rather than throwing an exception and disconnecting the peer.
- PSCS-1797: Buffer alignment issues
- PSCS-1693: Photon Exit Codes on Startup Failures
- PSCS-1752: all "Port" config entries are now read as unsigned short rather than short...
- PSCS-1751: ENet: peer construction is more stable
- PSCS-1431: ENet: handle failure during peer construction and disconnect peer correctly
- PSCS-1633: Access Violation with hanging process on shutdown
- PSCS-1456: MUX: Adjusted how logical connections are cleaned up when physical connections are torn down.
- PSCS-391: Suppress the logging of "unimportant" exceptions, added config option "LogUnimportantExceptions" to enable logging.
- PSCS-1695: Added crash dumps for FatalRuntime, don't dump anymore on OPR_ProcessExit.
- PSCS-1691: added new policy timeout for OPR_AppDomainRudeUnload now triggering a eDisableRuntime (which triggers a clean photon shutdown).
- PSCS-1651: TCP: flow control issues fixed
- PSCS-1456: MUX: fixed leaking inbound mux peers and crashes.
- PSCS-1600: Fix leaking disconnected peer issue which was causing a buffer leak.
- PSCS-1608: Fix counter problem.
- PSCS-1540: ENet exception: "Command length: 0 is either zero, or more than available data"
- PSCS-1610: Websockets: Fixed Ooutbound data corruption
- PSCS-1609: Websockets: Fixed memory access to outbound data
- PSCS-1603: Socket leak on outbound datagram connections.
- PSCS-1591: TCPPing now reports server time correctly.
- PSCS-1542: Flow control: added automatic flow control queue consolidation
- PSCS-1560: Removed a lock which was causing a lock inversion and caused Photon process to hang.
- PSCS-1467: "Pure virtual function call" error on shutdown
- PSCS-1243: MUX: Pass flow control status events on to the peers.
- PSCS-1502: Lock inversion on application restart fixed (could cause deadlocks)
- PSCS-1470: Removed a race condition that could cause a crash on shutdown.
- PSCS-1372: Fixed a possible crash when connection limit was reached
- PSCS-1263: Obtain remote port as soon as socket connects and cache it for later use.
- PSCS-1651: TCP Flow Control fixes
- PSCS-1603: Memory leak caused by pending "sockets in use"
- PSCS-1456: MUX: Fixed physical connection establishment/closure race condition access violation bug.
- PSCS-1418: Count bug which left enet Connection Timeout disconnect counter high.
- PSCS-1575: TCP clients not disconnected properly after disconnect from managed code
- PSCS-1499: MUX: removed some lock inversions
- PSCS-1355: Photon hang when CLR was disabled
- PSCS-1799: Check if .NET Framework 3.5 or later is installed (shows a Message Box otherwise)
- PSCS-1398: optional use of baretail cmd to open log files
- PSCS-1076: show all local network IPs for loadbalancing config
- PSCS-1391: added a launcher GUI for Photon Redistributable
- PSCS-1387: multilanguage support
- PSCS-1614: PeerBase.AbortConnection() - to terminate a (TCP) connection forcefully
- PSCS-1538: support for native policy file listener
- PSCS-1632: ApplicationBase now has an unhandled exception handler to log all errors
- PSCS-1711: System.Web.dll added to Photon Server SDK
- PSCS-1646: Prototype for new binary protocol Version 1.7 with compression of types
- PSCS-1781: Added gp binary protocol 1.7
- PSCS-1402: typo in debug config files: CLRVersion = "v2.0"
- PSCS-1447: ArgumentNullException on deserialization of Dictionaries with value type of object array
- PSCS-1427: ServerPeerBase.OnReceiveInternal() did not set RoundTripTime, Variance, NumFailures
- PSCS-1634: Photon Counter: "EventsSentCount" and "EventsSentPerSec" are not set
- PSCS-1647: Deserialization of encrypted operations and events does for protocol version 1.7
- PSCS-1645: Changed internal operations from "public" to "internal" (Operations.InitiEncryptionResponse, Operations.PingResponse)
- PSCS-925: Dictionary serialization with custom type as value not working
- PSCS-1734: Websockets/JSON: Add support for empty objects
- JSON encoding for unknown Custom Types causes exception on clients because message was truncated.
- PSCS-1643: Removed old protocols which are not supported by the unmanaged PhotonSocketServer anymore. Removed unused GpBinary protocol prototypes
- PSCS-1648: Add constructor overload to TcpClient class to specify protocol to use
- PSCS-1642: Added missing documentation of public methods
- PSCS-1641: Added CLSCompliant(false) attribute to non CLS-compliant methods
- PSCS-1631: Changed CryptoProvider property of PeerBase class to protected to allow inheritors to implement a custom encrytion.
- PSCS-1258: Removed unused NodeId from CreateGameResponse
- PSCS-1740@JIRA: map the Photon peer type "HTTP" to a new NetworkProtocol enum value "HTTP"
- Removed serialization support for type Guid
- Added methods to PeerBase which allow a derived class to implement reading and sending of raw custom binary data.
- DynamicMethodCreator: removed unnecessary emit of cast on value type setters which causes an exception under mono
- GpBinaryByteTypeConverter: Generic Dictionaries are now detected by their generic type definition instead of the Guid type
- PSCS-1621: Empty room live time can be specified (per operation) to keep rooms open for a certain time after the last player quit
- PSCS-1587: added support for multiple lobbies
- PSCS-1578: SQL Lobbies
- PSCS-1628:,- PSCS-1509: LoadBalancing NUnit tests extended
- PSCS-1580: mute lobbies, mute games: option to suppress room events when a game or lobby is joined
- PSCS-1484: added optional parameter to Join operation to create game if it does not exist
- PSCS-1616: HTTP request queue implementation for LoadBalancing project
- PSCS-1569: FriendFinding feature, cache for online players
- PSCS-1590: Join random in SqlLobby with query does not check for max player property
- PSCS-1640: Room removal from the cache was not thread safe when scheduled over timer
- PSCS-1657: NullReferenceException on SetProperties operation in GameServer if join room failed.
- PSCS-1655: NullReferenceException on JoinLobby request
- PSCS-1653: Rooms were not removed from the AppLobby on the master server
- PSCS-1652: CreateGame failed due to missing GameId.
- PSCS-1590: "MaxPlayers", "IsVisible" and "IsOpen" property was not checked on JoinRandom request.
- PSCS-1403: prevent that game server registers itself with an IPv6 address
- PSCS-1412: Client cannot rejoin game if user name was set in authenticate
- PSCS-1501: IpAddress of Master server was compared by reference, not by value. Use any IPV4 IP / interface for publik IP address lookups and GS-To-Master connections. Resolve master server address before each reconnect.
- PSCS-1487: "Well known properties" was not converted for JS/Flash clients in SetProperties operation
- PSCS-1588: Room instances are not removed on master if not created on game server
- PSCS-1586: Room instances were not removed from cache on disconnect
- PSCS-1617: Game update events were always sent with reainitialze property set to true
- PSCS-1597: Players are not removed from online cache when connection to game server fails
- PSCS-1637: Create game can fail if called before game was removed from the game list
- PSCS-1569: added api tests for FiendFriends request.
- PSCS-1507: Peer and GameServerPeer implementations are now created by using the ThreadPool instead on the unmanaged thread
- PSCS-1475: Latency Monitor: log output for avg. latency of 0ms removed. ThreadsafeStopwatch removed + replaced by Environment.TickCount calculations
- PSCS-1488: UserId in Authenticate requests doesn't need to be unique for matchmaking (Removed unused blocked user feature)
- PSCS-1404: Removed "Cache" parameter from events sent to clients by a RaiseEvent operation. (Parameter is not used by the clients)
- Improved removing of cached room events
- Changed raise event operations data from Hashtable to object. Allows clients to send custom data objects.
- PSCS-1418: Counter Publisher: counters for policy peers, datagrams in & out / s added
- Photon.SocketServer.CounterPublisher - MaxRequestsInQueue was initialized with the value of MaxItemsPerRequest