Hi everyone,
I found that gideros support luasocket but can not find a demo code to implement this.
So can you show some line of code to using this feature (Open socket and send some bytes to server)
And about websocket, is gideros support for websocket?
Thanks!
Coming soon
Comments
Now you can use sockets, example (download Google's robots.txt file using HTTP GET method):
Note: To use WebSocket you'll need to implement the WebSocket protocol using LuaSockets.
http://www.whatwg.org/specs/web-socket-protocol/
http://stackoverflow.com/questions/9347612/how-do-i-generate-a-websocket-handshake-from-lua
Likes: phongtt, vitalitymobile, atilim
https://love2d.org/wiki/Tutorial:Networking_with_UDP
And google is your friend too
Btw. welcome on the forum.
Likes: vitalitymobile
Just use strings, in Lua a string is nothing more than an array of bytes. So if you need to send a table, for example, serialize it in a string.
Likes: vitalitymobile
Let me tell more detail about my purpose:
I plan to communicate with Cubeia Firebase server:
http://www.cubeia.org/index.php/component/content/article/1
So in protocol i thinks it must truly send bytes data:
https://docs.google.com/document/pub?id=1-FWLsdxkkvuf1zdvSCZINCkevHaVzkBC2F_WO2E1vpc#h.y0pg3rtwt1g1
So can you show me some way to do this
Thanks!
To build the packets you'll need to serialize integers in big-endian format.
Download and add to your project "numberlua.lua" to be able to perform bit-wise operations.
https://github.com/davidm/lua-bit-numberlua
Something like this should work:
Likes: vitalitymobile
Likes: vitalitymobile
I'm implement protocol and in sendPacketToFirebaseServer, i try this:
function sendPacketToFirebaseServer(version_packet_str)
client = socket.connect("localhost", 4123)
client:send(version_packet_str)
while true do
s, status, partial = client:receive(1024)
print(s or partial)
if status == "closed" then
break
end
end
client:close()
return "done";
end
But the player become not response (Server work well)
So can you show me the right way to receive server response?
And can you please show me how to pack String argument?
(example login request : https://docs.google.com/document/pub?id=1-FWLsdxkkvuf1zdvSCZINCkevHaVzkBC2F_WO2E1vpc#id.l9sgb8g2sp39)
PD: Do not print directly the response packets, unpack them (see printLoginResponsePacket(...) as an example).
Likes: vitalitymobile
When server receive packet, it show hex dump
00 00 00 16 0A 00 06 74 69 6E 68 6C 68 00 03 31 32 33 00 00 00 7B
And do not accept message.
INFO SessionHandler - Exception caught for session. Closing session: (SOCKET, R
: /127.0.0.1:2789, L: /127.0.0.1:4123, S: /0.0.0.0:4123)
org.apache.mina.filter.codec.ProtocolDecoderException: java.nio.BufferUnderflowE
xception (Hexdump: 00 00 00 16 0A 00 06 74 69 6E 68 6C 68 00 03 31 32 33 00 00 0
0 7B)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(Prot
ocolCodecFilter.java:165)
So do we packed it right?
Likes: vitalitymobile
I try as you comment but it still cause error.
For detail and debug information, i send you Server code and Client Code.
To start Server, go to pom.xml file folder and type maven command: mvn firebase:run
(No Database and Setup require)
Many Thanks!
http://dl.dropbox.com/u/55451790/firegame.zip
http://dl.dropbox.com/u/55451790/Socket.zip
The server doesn't close the connection so I've modified also sendPacketToFirebaseServer(...).
Likes: vitalitymobile, ndoss
https://deluxepixel.com
It works like a charm!
Thanks Javi so much for your Patient support!
I've updated client code and share to community (http://www.giderosmobile.com/forum/discussion/1098/complete-code-client-server-for-building-multiplayer-game)
Again, thanks Javi! >-
Likes: ndoss, MoKaLux
It's easy to understand and practice...
Thanks so much
Likes: vitalitymobile
Thanks @Javi and @vitalitymobile
Likes: vitalitymobile
I'm trying to create basic luasocket project.
How to fix this error? It seems that a file is missing, though I'm using Gideros 2018.6.2, everything should be there. All plugin files are present in C:\Program Files(x86)\Gideros\All Plugins\luasocket
(I've enabled plugin "Lua Socket" in my project's settings)
All I have in my 'main.lua':
Uploading finished. cannot open socket.lua: No such file or directory socket.lua cannot be opened.
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
Got some response from Google!
Uploading finished.
HTTP/1.0 200 OK
Accept-Ranges: none
Vary: Accept-Encoding
Content-Type: text/plain
Date: Sat, 11 Aug 2018 07:44:50 GMT
Expires: Sat, 11 Aug 2018 07:44:50 GMT
Cache-Control: private, max-age=0
Last-Modified: Fri, 25 May 2018 19:00:00 GMT
X-Content-Type-Options: nosniff
Server: sffe
X-XSS-Protection: 1; mode=block
User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
Disallow: /sdch
Disallow: /groups
Disallow: /index.html?
Disallow: /?
Allow: /?hl=
Disallow: /?hl=*&
Allow: /?hl=*&gws_rd=ssl$
Disallow: /?hl=*&*&gws_rd=ssl
Allow: /?gws_rd=ssl$
Allow: /?pt1=true$
Disallow: /imgres
Disallow: /u/
Disallow: /preferences
Disallow: /setprefs
Disallow: /default
Disallow: /m?
Disallow: /m/
Allow: /m/finance
Disallow: /wml?
Disallow: /wml/?
Disallow: /wml/search?
Disallow: /xhtml?
Disallow: /xhtml/?
Disallow: /xhtml/search?
Disallow: /xml?
Disallow: /imode?
Disallow: /imode/?
Disallow: /imode/search?
Disallow: /jsky?
Disallow: /jsky/?
Disallow: /jsky/searc
h?
Disallow: /pda?
Disallow: /pda/?
Disallow: /pda/search?
Disallow: /sprint_xhtml
Disallow: /sprint_wml
Disallow: /pqa
Disallow: /palm
Disallow: /gwt/
Disallow: /purchases
Disallow: /local?
Disallow: /local_url
Disallow: /shihui?
Disallow: /shihui/
Disallow: /products?
Disallow: /product_
Disallow: /products_
Disallow: /products;
Disallow: /print
Disallow: /books/
Disallow: /bkshp?*q=*
Disallow: /books?*q=*
Disallow: /books?*output=*
Disallow: /books?*pg=*
Disallow: /books?*jtp=*
Disallow: /books?*jscmd=*
Disallow: /books?*buy=*
Disallow: /books?*zoom=*
Allow: /books?*q=related:*
Allow: /books?*q=editions:*
Allow: /books?*q=subject:*
Allow: /books/about
Allow: /booksrightsholders
Allow: /books?*zoom=1*
Allow: /books?*zoom=5*
Allow: /books/content?*zoom=1*
Allow: /books/content?*zoom=5*
Disallow: /ebooks/
Disallow: /ebooks?*q=*
Disallow: /ebooks?*output=*
Disallow: /ebooks?*pg=*
Disallow: /ebooks?*jscmd=*
Disallow: /ebooks?*buy=*
Disallow: /ebooks?*zoom=*
Allow: /ebooks?*q=related:*
Allow: /ebooks?*q=editions
Allow: /ebooks?*q=subject:*
Allow: /ebooks?*zoom=1*
Allow: /ebooks?*zoom=5*
Disallow: /patents?
Disallow: /patents/download/
Disallow: /patents/pdf/
Disallow: /patents/related/
Disallow: /scholar
Disallow: /citations?
Allow: /citations?user=
Disallow: /citations?*cstart=
Allow: /citations?view_op=new_profile
Allow: /citations?view_op=top_venues
Allow: /scholar_share
Disallow: /s?
Allow: /maps?*output=classic*
Allow: /maps?*file=
Allow: /maps/api/js?
Allow: /maps/d/
Disallow: /maps?
Disallow: /mapstt?
Disallow: /mapslt?
Disallow: /maps/stk/
Disallow: /maps/br?
Disallow: /mapabcpoi?
Disallow: /maphp?
Disallow: /mapprint?
Disallow: /maps/api/js/
Disallow: /maps/api/staticmap?
Disallow: /maps/api/streetview
Disallow: /mld?
Disallow: /staticmap?
Disallow: /maps/preview
Disallow: /maps/place
Disallow: /help/maps/streetview/partners/welcome/
Disallow: /help/maps/indoormaps/partners/
Disallow: /lochp?
Disallow: /center
Disallow: /ie?
Disallow: /blogsearch/
Disallow: /blogsearch_feeds
Disallow: /advanced_blog_searc
h
Disallow: /uds/
Disallow: /chart?
Disallow: /transit?
Disallow: /extern_js/
Disallow: /xjs/
Disallow: /calendar/feeds/
Disallow: /calendar/ical/
Disallow: /cl2/feeds/
Disallow: /cl2/ical/
Disallow: /coop/directory
Disallow: /coop/manage
Disallow: /trends?
Disallow: /trends/music?
Disallow: /trends/hottrends?
Disallow: /trends/viz?
Disallow: /trends/embed.js?
Disallow: /trends/fetchComponent?
Disallow: /trends/beta
Disallow: /trends/topics
Disallow: /musica
Disallow: /musicad
Disallow: /musicas
Disallow: /musicl
Disallow: /musics
Disallow: /musicsearch
Disallow: /musicsp
Disallow: /musiclp
Disallow: /urchin_test/
Disallow: /movies?
Disallow: /wapsearch?
Allow: /safebrowsing/diagnostic
Allow: /safebrowsing/report_badware/
Allow: /safebrowsing/report_error/
Allow: /safebrowsing/report_phish/
Disallow: /reviews/search?
Disallow: /orkut/albums
Disallow: /cbk
Allow: /cbk?output=tile&cb_client=maps_sv
Disallow: /maps/api/js/AuthenticationService.Authenticate
Disallow: /maps/api/js/QuotaService.RecordEvent
Disallow
: /recharge/dashboard/car
Disallow: /recharge/dashboard/static/
Disallow: /profiles/me
Allow: /profiles
Disallow: /s2/profiles/me
Allow: /s2/profiles
Allow: /s2/oz
Allow: /s2/photos
Allow: /s2/search/social
Allow: /s2/static
Disallow: /s2
Disallow: /transconsole/portal/
Disallow: /gcc/
Disallow: /aclk
Disallow: /cse?
Disallow: /cse/home
Disallow: /cse/panel
Disallow: /cse/manage
Disallow: /tbproxy/
Disallow: /imesync/
Disallow: /shenghuo/search?
Disallow: /support/forum/search?
Disallow: /reviews/polls/
Disallow: /hosted/images/
Disallow: /ppob/?
Disallow: /ppob?
Disallow: /accounts/ClientLogin
Disallow: /accounts/ClientAuth
Disallow: /accounts/o8
Allow: /accounts/o8/id
Disallow: /topicsearch?q=
Disallow: /xfx7/
Disallow: /squared/api
Disallow: /squared/search
Disallow: /squared/table
Disallow: /qnasearch?
Disallow: /app/updates
Disallow: /sidewiki/entry/
Disallow: /quality_form?
Disallow: /labs/popgadget/search
Disallow: /buzz/post
Disallow: /compressiontest/
Disallow: /analytics/feeds/
Disallow: /analytics/
partners/comments/
Disallow: /analytics/portal/
Disallow: /analytics/uploads/
Allow: /alerts/manage
Allow: /alerts/remove
Disallow: /alerts/
Allow: /alerts/$
Disallow: /ads/search?
Disallow: /ads/plan/action_plan?
Disallow: /ads/plan/api/
Disallow: /ads/hotels/partners
Disallow: /phone/compare/?
Disallow: /travel/clk
Disallow: /hotelfinder/rpc
Disallow: /hotels/rpc
Disallow: /flights/rpc
Disallow: /async/flights/
Disallow: /commercesearch/services/
Disallow: /evaluation/
Disallow: /chrome/browser/mobile/tour
Disallow: /compare/*/apply*
Disallow: /forms/perks/
Disallow: /shopping/suppliers/search
Disallow: /ct/
Disallow: /edu/cs4hs/
Disallow: /trustedstores/s/
Disallow: /trustedstores/tm2
Disallow: /trustedstores/verify
Disallow: /adwords/proposal
Disallow: /shopping/product/
Disallow: /shopping/seller
Disallow: /shopping/reviewer
Disallow: /about/careers/applications/
Disallow: /landing/signout.html
Disallow: /webmasters/sitemaps/ping?
Disallow: /ping?
Disallow: /gallery/
Disallow: /landing/now/ontap/
Allow:
/searchhistory/
Allow: /maps/reserve
Allow: /maps/reserve/partners
Disallow: /maps/reserve/api/
Disallow: /maps/reserve/search
Disallow: /maps/reserve/bookings
Disallow: /maps/reserve/settings
Disallow: /maps/reserve/manage
Disallow: /maps/reserve/payment
Disallow: /maps/reserve/receipt
Disallow: /maps/reserve/sellersignup
Disallow: /maps/reserve/payments
Disallow: /maps/reserve/feedback
Disallow: /maps/reserve/terms
Disallow: /maps/reserve/m/
Disallow: /maps/reserve/b/
Disallow: /maps/reserve/partner-dashboard
Disallow: /about/views/
Disallow: /intl/*/about/views/
Disallow: /local/dining/
Disallow: /local/place/reviews/
Disallow: /local/place/rap/
Disallow: /local/tab/
Disallow: /travel/hotels/
Allow: /finance
Disallow: /finance?*q=*
# Certain social media sites are whitelisted to allow crawlers to access page markup when links to google.com/imgres* are shared. To learn more, please contact images-robots-whitelist@google.com.
User-agent: Twitterbot
Allow: /imgres
User-agent: facebookexternalhit
Allow: /img
res
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml
Sitemap: https://www.google.com/sitemap.xml
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
https://github.com/gideros/gideros/blob/master/plugins/luasocket/source/socket.lua
в мене цей приклад працює
Likes: Apollo14
https://play.google.com/store/apps/developer?id=razorback456
мій блог по гідерос https://simartinfo.blogspot.com
Слава Україні!
Likes: MoKaLux
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)