SlideShare a Scribd company logo
1 of 45
Download to read offline
Real Time applications with sockets
Introduction to SmartfoxServer 2x
Sponsors
Pablo Monterde - IT Manager
Softalian:
● SEO Agency
● Web Development
Dinacode:
● IT Consulting
● Adhoc Development
● Internal projects
@pablomonterdep
Projects
● Doyugames.com
● Gamesnan.com
● Casualarena.com
● +30 casual games real-
time multiuser
Context
What is Real-Time?
● Web: 1 httpRequest - ~300 - 500 ms
● System Monitoring: ~1 - 5 segs
● Messaging Application: ~ 500ms - 20 segs
● Collaborative Application: 1 Message - ~50 - 100 ms - FULL DUPLEX
● Chat Application: 1 Message - ~50 - 100 ms - FULL DUPLEX
● Multiplayer games : 1- 2 Frames - ~ 40ms - FULL DUPLEX
“Time is relative”
Multi-User Application
user - user server - user
user - broadcast server - broadcast
Multiple clients
Potencial Applications
1. Complex Chat
2. Realt-time Monitoring Application
3. Collaborative Application - Whiteboard, Shared
docs…
4. Industrial Control System
5. Data Acquisition Server
6. Multiplayer Games
Protocols - HTTP - Restful
● Simple
● All clients support
● Mature - Developer Experience
● Many server - framework - libraries
options
● Ajax
● Scalability
PROS
Protocols - HTTP - Restful
● No persistent connection
● No server to client messages
● Http - Header size
● Pull based application - one direction
● Latency
● New connection per request
CONS
Protocols - Socket - Websocket
● Permanent connection
● Full duplex - bidirectional
● New Websocket
● Low latency
● Overhead Reduction
● Dramatically Header Reduction
PROS
Protocols - Socket - Websocket
● Scalability
● Less server - frameworks - libraries
options
● Session management - session is evil
● Reconnection management
● Developer experience
● Complex
Cons
Server - Client Communication
vs
Client - Client Communication
?
Client - Client Communication
So...Which Protocol?
Socket - Websocket
Let´s Start !!!
2X
Overview
SmartFoxServer is a multi-platform client/server SDK
designed to integrate with the major online web and mobile
technologies (Adobe Flash, Unity, iOS, Android, Java,
Windows Phone 8, HTML5, Windows 10) enabling
developers to rapidly created multiuser experiences of all
scales.
Customer
Components
Client API
Socket Server Web Server
Server Side
Client Side
Clients
Clients Examples
Features
● High performance network engine
● Binary protocol with dynamic compression
● Public and private chat messaging - bad words filter
● Server-side variables (User Variables / Room
Variables) - Synchronization
● Auto kick idle users
● Dynamically create Rooms
● Logging capabilities
● Administrator messages
● Moderator support (kick / ban actions)
● Flooding filter with auto-kick / auto-ban functions
● IP filtering
● Persistent banned users list
● Web-based administration tool
● HTTP Tunnelling for firewall and proxy traversal
● Secure encrypted login system
● Embedded web server supporting Java servlet
● Server-side Extensions
● Direct database connectivity
● Mailer system
● Internal event dispatching system
● HRC system for transparent reconnection of unstable
clients
● UDP support
● User profiles and permissions system
● Rooms management (renaming, locking, resizing...)
● "Ghost users" hunting system
● Special MMO API for "Area of Interest"-based users
proximity notification
● Game API (match-making,Invitations,challenges
Features - Connection & network
● Sockets & WebSockets
● Session => Login Management => User
● Package Compression Configuration
● Http tunneling for clients unable to establish socket connections
● Ghost Hunter
● HRC system for transparent reconnection of unstable clients
Features - Zones & Rooms
● Zone extensions - server logic
● Room extensions - server logic
● Users join Zones
● Users join Rooms
● Room Variables
● Room Permissions
● Room Events
Zone A
User A
Room A
User B
Room B
Zone B Zone C
User C
Synchronization - User & Room vars
Room
User A User B User C
Communication - User 2 User
User A
User B
Send Public Message
Room
User C
Communication - User 2 User
User A User B
Send Private Message
Communication - User 2 User
User A
User B
Send Object Message
Room
User C
Communication - Server 2 User
Zone A
User A
Room A - extension
User B
Room B
Zone B - extension Zone C
User C
Communication - Server 2 User
Sfs Extension
Communication - Server 2 User
Handles
Features - Security
● Ban Manager - ( name | IP )
● Flood Filter
● Words filter - (whitelist | blacklist)
● Privilege manager - (profiles | roles)
● Moderator manager
Features - Web Server - Jetty
Socket Server Web Server
Server Side
Features - Administration Tool - Profiling
Features - Administration Tool - Logging
Features - Administration Tool - Zone
Features - Administration Tool - Room
Features - Administration Tool - User
On the other hand
Scalability - Bad Horizontal Scalability
HTTP Diagram
SFS Diagram
STICKY SESSION
No Open Source - License
Community License Elastic License Perpetual License
● Free
● 100 CCU
● 100% features
● Payment per day
● Prize depends on CCU max
● Never expire
● Prize per CCU max
● One time fee
Thanks
www.cooldeveloper.xyz

More Related Content

What's hot

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Youngtaek Oh
 
웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드Hyunjik Bae
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話torisoup
 
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기Haechan Lee
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方Daisaku Mochizuki
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?SangYun Yi
 
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?Seok-ju Yun
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 CookApps
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법ChangHyun Won
 
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Tools & Middleware Forum
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)valhashi
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 

What's hot (20)

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템
 
웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드웹서버와 ProudNet 서버간 상호작용 가이드
웹서버와 ProudNet 서버간 상호작용 가이드
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?Igc2016 Technical Artist가 뭐하는 사람이에요?
Igc2016 Technical Artist가 뭐하는 사람이에요?
 
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
Socket.io (part 1)
Socket.io (part 1)Socket.io (part 1)
Socket.io (part 1)
 
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
Game Interface Design
Game Interface DesignGame Interface Design
Game Interface Design
 
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
TA가 뭐예요? (What is a Technical Artist? 블루홀스튜디오)
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 

Similar to Real-time applications with sockets and websockets. Introduction to Smartfoxserver 2x

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Tomáš Kypta
 
Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinarChanaka Fernando
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In SoaWSO2
 
Accion Labs microservices white paper
Accion Labs microservices white paper Accion Labs microservices white paper
Accion Labs microservices white paper Tony Kernan
 
Accion Labs Microservices Whitepaper
Accion Labs Microservices WhitepaperAccion Labs Microservices Whitepaper
Accion Labs Microservices WhitepaperTony Kernan
 
Accion labs microservices white paper
Accion labs microservices white paper Accion labs microservices white paper
Accion labs microservices white paper Tony Kernan
 
Analyzing RDP traffc with Bro
Analyzing RDP traffc with BroAnalyzing RDP traffc with Bro
Analyzing RDP traffc with BroJosh Liburdi
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedis Labs
 
Thick Client Penetration Testing.pdf
Thick Client Penetration Testing.pdfThick Client Penetration Testing.pdf
Thick Client Penetration Testing.pdfSouvikRoy114738
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
How we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kHow we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kRUDDER
 
WSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2
 
Software Requirement Specification Of Hotel Management System
Software Requirement Specification Of Hotel Management SystemSoftware Requirement Specification Of Hotel Management System
Software Requirement Specification Of Hotel Management SystemUttam Singh Chaudhary
 
Upleveling Brownfield Integration
Upleveling Brownfield IntegrationUpleveling Brownfield Integration
Upleveling Brownfield IntegrationAsanka Abeyweera
 
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield IntegrationWSO2
 
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael Schwartzkopff
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael SchwartzkopffOSMC 2009 | net-snmp: The forgotten classic by Dr. Michael Schwartzkopff
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael SchwartzkopffNETWAYS
 

Similar to Real-time applications with sockets and websockets. Introduction to Smartfoxserver 2x (20)

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012
 
Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinar
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In Soa
 
Accion Labs microservices white paper
Accion Labs microservices white paper Accion Labs microservices white paper
Accion Labs microservices white paper
 
Accion Labs Microservices Whitepaper
Accion Labs Microservices WhitepaperAccion Labs Microservices Whitepaper
Accion Labs Microservices Whitepaper
 
Accion labs microservices white paper
Accion labs microservices white paper Accion labs microservices white paper
Accion labs microservices white paper
 
Analyzing RDP traffc with Bro
Analyzing RDP traffc with BroAnalyzing RDP traffc with Bro
Analyzing RDP traffc with Bro
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
 
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor
 
Thick Client Penetration Testing.pdf
Thick Client Penetration Testing.pdfThick Client Penetration Testing.pdf
Thick Client Penetration Testing.pdf
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
How we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kHow we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50k
 
WSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product OverviewWSO2 Business Process Server 3.5.0 - Product Overview
WSO2 Business Process Server 3.5.0 - Product Overview
 
Software Requirement Specification Of Hotel Management System
Software Requirement Specification Of Hotel Management SystemSoftware Requirement Specification Of Hotel Management System
Software Requirement Specification Of Hotel Management System
 
Monkey Server
Monkey ServerMonkey Server
Monkey Server
 
Upleveling Brownfield Integration
Upleveling Brownfield IntegrationUpleveling Brownfield Integration
Upleveling Brownfield Integration
 
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration[WSO2Con Asia 2018] Up-leveling Brownfield Integration
[WSO2Con Asia 2018] Up-leveling Brownfield Integration
 
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael Schwartzkopff
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael SchwartzkopffOSMC 2009 | net-snmp: The forgotten classic by Dr. Michael Schwartzkopff
OSMC 2009 | net-snmp: The forgotten classic by Dr. Michael Schwartzkopff
 
Dynomite @ RedisConf 2017
Dynomite @ RedisConf 2017Dynomite @ RedisConf 2017
Dynomite @ RedisConf 2017
 

Recently uploaded

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

Real-time applications with sockets and websockets. Introduction to Smartfoxserver 2x

  • 1. Real Time applications with sockets Introduction to SmartfoxServer 2x
  • 3. Pablo Monterde - IT Manager Softalian: ● SEO Agency ● Web Development Dinacode: ● IT Consulting ● Adhoc Development ● Internal projects @pablomonterdep
  • 4. Projects ● Doyugames.com ● Gamesnan.com ● Casualarena.com ● +30 casual games real- time multiuser
  • 6. What is Real-Time? ● Web: 1 httpRequest - ~300 - 500 ms ● System Monitoring: ~1 - 5 segs ● Messaging Application: ~ 500ms - 20 segs ● Collaborative Application: 1 Message - ~50 - 100 ms - FULL DUPLEX ● Chat Application: 1 Message - ~50 - 100 ms - FULL DUPLEX ● Multiplayer games : 1- 2 Frames - ~ 40ms - FULL DUPLEX “Time is relative”
  • 7. Multi-User Application user - user server - user user - broadcast server - broadcast
  • 9. Potencial Applications 1. Complex Chat 2. Realt-time Monitoring Application 3. Collaborative Application - Whiteboard, Shared docs… 4. Industrial Control System 5. Data Acquisition Server 6. Multiplayer Games
  • 10. Protocols - HTTP - Restful ● Simple ● All clients support ● Mature - Developer Experience ● Many server - framework - libraries options ● Ajax ● Scalability PROS
  • 11. Protocols - HTTP - Restful ● No persistent connection ● No server to client messages ● Http - Header size ● Pull based application - one direction ● Latency ● New connection per request CONS
  • 12. Protocols - Socket - Websocket ● Permanent connection ● Full duplex - bidirectional ● New Websocket ● Low latency ● Overhead Reduction ● Dramatically Header Reduction PROS
  • 13. Protocols - Socket - Websocket ● Scalability ● Less server - frameworks - libraries options ● Session management - session is evil ● Reconnection management ● Developer experience ● Complex Cons
  • 14. Server - Client Communication vs
  • 15. Client - Client Communication ?
  • 16. Client - Client Communication
  • 19. 2X
  • 20. Overview SmartFoxServer is a multi-platform client/server SDK designed to integrate with the major online web and mobile technologies (Adobe Flash, Unity, iOS, Android, Java, Windows Phone 8, HTML5, Windows 10) enabling developers to rapidly created multiuser experiences of all scales.
  • 22. Components Client API Socket Server Web Server Server Side Client Side
  • 25. Features ● High performance network engine ● Binary protocol with dynamic compression ● Public and private chat messaging - bad words filter ● Server-side variables (User Variables / Room Variables) - Synchronization ● Auto kick idle users ● Dynamically create Rooms ● Logging capabilities ● Administrator messages ● Moderator support (kick / ban actions) ● Flooding filter with auto-kick / auto-ban functions ● IP filtering ● Persistent banned users list ● Web-based administration tool ● HTTP Tunnelling for firewall and proxy traversal ● Secure encrypted login system ● Embedded web server supporting Java servlet ● Server-side Extensions ● Direct database connectivity ● Mailer system ● Internal event dispatching system ● HRC system for transparent reconnection of unstable clients ● UDP support ● User profiles and permissions system ● Rooms management (renaming, locking, resizing...) ● "Ghost users" hunting system ● Special MMO API for "Area of Interest"-based users proximity notification ● Game API (match-making,Invitations,challenges
  • 26. Features - Connection & network ● Sockets & WebSockets ● Session => Login Management => User ● Package Compression Configuration ● Http tunneling for clients unable to establish socket connections ● Ghost Hunter ● HRC system for transparent reconnection of unstable clients
  • 27. Features - Zones & Rooms ● Zone extensions - server logic ● Room extensions - server logic ● Users join Zones ● Users join Rooms ● Room Variables ● Room Permissions ● Room Events Zone A User A Room A User B Room B Zone B Zone C User C
  • 28. Synchronization - User & Room vars Room User A User B User C
  • 29. Communication - User 2 User User A User B Send Public Message Room User C
  • 30. Communication - User 2 User User A User B Send Private Message
  • 31. Communication - User 2 User User A User B Send Object Message Room User C
  • 32. Communication - Server 2 User Zone A User A Room A - extension User B Room B Zone B - extension Zone C User C
  • 33. Communication - Server 2 User Sfs Extension
  • 34. Communication - Server 2 User Handles
  • 35. Features - Security ● Ban Manager - ( name | IP ) ● Flood Filter ● Words filter - (whitelist | blacklist) ● Privilege manager - (profiles | roles) ● Moderator manager
  • 36. Features - Web Server - Jetty Socket Server Web Server Server Side
  • 37. Features - Administration Tool - Profiling
  • 38. Features - Administration Tool - Logging
  • 42. On the other hand
  • 43. Scalability - Bad Horizontal Scalability HTTP Diagram SFS Diagram STICKY SESSION
  • 44. No Open Source - License Community License Elastic License Perpetual License ● Free ● 100 CCU ● 100% features ● Payment per day ● Prize depends on CCU max ● Never expire ● Prize per CCU max ● One time fee