Skip to content

gustafnilklint/KHelg-Pong-iOS

Repository files navigation

Description

Some boilerplate code for the Pong Game competence event.

Prerequisites

  • Download and install node.js from http://www.nodejs.org
  • Run the following commands in the terminal:
    • git clone https://github.com/jayway/KHelgGameServer.git
    • npm install

Installation of node.js via homebrew doesn't work since it doesn't come with npm for some reason

Further details and specification about the server is available at: https://github.com/jayway/KHelgGameServer.

Project information

Use the .xcworkspace file. There are two scenes in the storyboard and three classes provided. You are free to change, remove and do what you want with everything.

  • ConnectionViewController.swift is the initial view controller. Contains basic UI for connecting and communicating with other players.
  • GameViewController.swift is where the game will be displayed.
  • SocketController.swift is responsible for the connection to the server via SocketIO.

In ConnectionViewController.swift there is a constant NSURL with the address to the server:

let url = NSURL(scheme: "ws", host: "localhost:3000", path: "/")!

You can change this to point to https://jaywaypongserver.herokuapp.com/ where there is a published version of the server.

SIOSocket

The project uses SIOSocket for communication with the server.

To connect:

SIOSocket.socketWithHost(urlString) { (socket) -> Void in
    self.socket = socket
}

Properties:

socket.onConnect = {
	println("Connected")
}

socket.onDisconnect = {
	println("Disconnected")
}

Listening for events:

socket.on("event to listen to") { (object: [AnyObject]!) in
	println("\(object.description)")
}

Note: put the properties and listening for events inside the connection closure.

Sending events:

self.socket?.emit("message type", args: [AnyObject]!)

SIOSocket will handle serialization and deserialization to and from JSON for you.

WARNING: All SIOSocket callbacks happen on a background thread. If you are going to update UI from a callback, make sure to dispatch the call back to the main thread first!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published