Planetside-2-API-Tracker icon indicating copy to clipboard operation
Planetside-2-API-Tracker copied to clipboard

`"worlds": [ "all" ]` appears to be broken on world-level event subscriptions

Open fredkilbourn opened this issue 3 years ago • 2 comments

It appears that world-level events are not working reliably if you subscribe with "worlds": [ "all" ], instead you must subscribe with "worlds":["1","9","10","11","13","17","18","19","25","1000","1001"].

I tested several variations and further testing is needed, but here are results from testing on http://census.daybreakgames.com/ps2-websocket.html:


/*** RECEIVES FacilityControl AND PlayerFacilityCapture ***/

{
	"service": "event",
	"action": "subscribe",
	"characters": [
		"all"
	],
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": false,
	"worlds": [
		"1",
		"9",
		"10",
		"11",
		"13",
		"17",
		"18",
		"19",
		"25",
		"1000",
		"1001"
	]
}

{
	"service": "event",
	"action": "subscribe",
	"characters": [
		"all"
	],
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": true,
	"worlds": [
		"1",
		"9",
		"10",
		"11",
		"13",
		"17",
		"18",
		"19",
		"25",
		"1000",
		"1001"
	]
}

/*** ONLY RECEIVES FacilityControl ***/

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"FacilityControl",
		"PlayerFacilityCapture"
	],
	"worlds": [
		"1",
		"9",
		"10",
		"11",
		"13",
		"17",
		"18",
		"19",
		"25",
		"1000",
		"1001"
	]
}

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": false,
	"worlds": [
		"1",
		"9",
		"10",
		"11",
		"13",
		"17",
		"18",
		"19",
		"25",
		"1000",
		"1001"
	]
}

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": true,
	"worlds": [
		"1",
		"9",
		"10",
		"11",
		"13",
		"17",
		"18",
		"19",
		"25",
		"1000",
		"1001"
	]
}

/*** ONLY RECEIVES PlayerFacilityCapture ***/
{
	"service": "event",
	"action": "subscribe",
	"characters": [
		"all"
	],
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": false,
	"worlds": [
		"all"
	]
}

/*** RECEIVES NO EVENTS ***/

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"FacilityControl",
		"PlayerFacilityCapture"
	],
	"worlds": [
		"all"
	]
}

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": false,
	"worlds": [
		"all"
	]
}

{
	"service": "event",
	"action": "subscribe",
	"eventNames": [
		"PlayerFacilityCapture",
		"FacilityControl"
	],
	"logicalAndCharactersWithWorlds": true,
	"worlds": [
		"all"
	]
}

fredkilbourn avatar May 18 '22 11:05 fredkilbourn

Per [DIG] Maelstrome26 the valid worlds should be:

export const worldArray = [
    1,
    10,
    13,
    17,
    19,
    40,
    1000,
    2000,
];

https://discord.com/channels/251073753759481856/451032574538547201/976479124086464522

fredkilbourn avatar May 18 '22 13:05 fredkilbourn

I just wanted to leave the comment that the case /*** ONLY RECEIVES FacilityControl ***/ is not broken. PlayerFacilityCapture is a character centric event that is filtered by whitelisting character id first and foremost, world ids can be used to further filter the messages in combination with logicalAndCharactersWithWorlds set to true.

I suspect it is a bug with the wildcard for worlds which is also related to the subscriptions being altered. I am currently tracking this in more detail with NSS.

microwavekonijn avatar Oct 07 '23 12:10 microwavekonijn