Git Product home page Git Product logo

ishoal's People

Contributors

zhuyifei1999 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ishoal's Issues

intermittent connection failures

(ping @ionizer999)

So recently we are observing some intermittent connection failures, and I asked one whom I had connection failures with to do some testing, and we were able to reproduce it while capturing the packets by wireshark. We avoided all possibilities of having a IP collision by NAT-ing to a 192.168.99.* at ishoal, and there's what we have, with the view of the capture limited to 192.168.99.* subnet (compressed to zip because of github):

The host (them) at 192.168.99.222: a1s.pcapng.zip
The client (me) at 192.168.99.123: m1s.pcapng.zip

AFAICT, there is no packet loss or any shenanigans, but I did get the error of one or more consoles not responding, and I can't see what it is complaining about. Any ideas?

Add multi-switch support

Support multiple switches - this basically needs the PBF code to be inserted twice for different IP -> MAC combinations.

Also the Switch detection code needs to be extended to support that.

FR: Fix local device conflicts by using ARP who-has packets

While rooms (#2) will allow to easily detect conflicts of other players, there is still the problem with local device conflicts.

Those can be solved by checking whenever a node joins if any other node in the network would get a local reply on that IP address.

There are 2 cases:

  • Node joins newly and has the same IP as some device in someone else's subnet
  • Node joins newly and a device in the network has the same IP as one of the existing IPs already

A larger problem however are devices that are added to the network dynamically as one would need to constantly check for ARP packets.

=> Maybe router method with e.g. 17.99.. or 192.168.99.* subnet might be better. (though things worked amazingly well even though conflict area is high)

Add room support

Currently when a game is going on Switches that see that, will not broadcast any information.

That makes it impossible to start a new game.

The simplest solution is to just join a room with a name (that also poses as a password).

A more comfortable solution could be to create a "Rooms" submenu and allow to join Rooms from there, marking them as locked and using color for available rooms:

- @999ers
- FreeToPlay

[Join Room] [Create Room] [Back]

But the room names would be easy to start.

Joining a room explicitly has the advantage of checking for IP conflicts before a Node joins the Room virtual network.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.