View Issue Details

IDProjectCategoryView StatusLast Update
0004678unrealmodule apipublic2016-12-30 16:08
Reportersyzop Assigned Tosyzop  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Product Version4.0.3.1 
Target Version4.0.10Fixed in Version4.0.10 
Summary0004678: Support for websockets
DescriptionWebsockets allow HTML5/JS to connect to UnrealIRCd without any extra requirements. This has been asked by two or three people now. Unfortunately nobody submits a feature request for it which is a shame...

This will likely be an ugly implementation so let's stuff it in a module.
TagsNo tags attached.
3rd party modules

Activities

syzop

2016-05-08 22:49

administrator   ~0019258

Last edited: 2016-05-08 22:49

NOTE: Feature request added, but not working on it myself at the moment.

blank

2016-05-09 18:16

reporter   ~0019259

Yup, reason we moved to InspIRCd.

taobataoma

2016-05-24 12:37

reporter   ~0019284

great, I want to know which version will include this feature?

syzop

2016-11-26 16:06

administrator   ~0019537

Will be ready by mid-December (or before)

syzop

2016-12-24 13:55

administrator   ~0019563

Last edited: 2016-12-24 13:56

commit 15842b8290c52b368dce625f8f782eec3dc71f7c
Author: Bram Matthys <[email protected]>
Date: Sat Dec 24 13:35:37 2016 +0100

    Added "websocket" module. This module provides support for WebSocket (RFC6455)
    so you can use IRC directly from HTML5/JS. It is still considered experimental
    but feel free to test it out. To do so, add this to your unrealircd.conf:
    loadmodule "websocket";
    This module was sponsored by Aberrant Software Inc.

If you want to test it, clone the UnrealIRCd git repository and use that. DO NOT try to use websocket.c on 4.0.9 (or any earlier version), it will seem to load but will not work properly.
So:
git clone https://github.com/unrealircd/unrealircd.git unrealircd-git
cd unrealircd-git
./Config
make && make install


syzop

2016-12-24 14:00

administrator   ~0019564

Last edited: 2016-12-24 14:02

I have requested some HTML5/JS websocket example code, it will be added later in extras/ or something.

Some IMPORTANT issues to be aware of with the current module:
1) set::options::show-connect-info will be automatically disabled if you use this module. This because such text would prevent websocket users from connecting.
2) For some browsers, notably Chrome, you will need to disable client certificates if you want to use wss:// (the SSL/TLS version of ws://) otherwise it would fail mysteriously. You can do this via set::ssl::options::no-client-certificate. That's not something we really recommend, though, as it would prevent the use of SSL certificates for server linking and /oper too.

To work around these issues the idea is to make websocket work on dedicated ports. This so you can enable it on port XYZ and keep SSL clientcerts (and show-connect-info) on at the other ports like 6667, 6697, etc. This will be done sometime later (no ETA).

syzop

2016-12-29 11:48

administrator   ~0019580

Documentation added: https://www.unrealircd.org/docs/WebSocket_support

syzop

2016-12-30 16:08

administrator   ~0019583

Marking as resolved. When issues show up, they will be dealt with.

Issue History

Date Modified Username Field Change
2016-05-08 22:48 syzop New Issue
2016-05-08 22:48 syzop Assigned To => syzop
2016-05-08 22:48 syzop Status new => confirmed
2016-05-08 22:48 syzop Assigned To syzop =>
2016-05-08 22:49 syzop Note Added: 0019258
2016-05-08 22:49 syzop Note Edited: 0019258
2016-05-08 22:49 syzop Note Edited: 0019258
2016-05-09 18:16 blank Note Added: 0019259
2016-05-24 12:37 taobataoma Note Added: 0019284
2016-11-26 16:06 syzop Assigned To => syzop
2016-11-26 16:06 syzop Status confirmed => assigned
2016-11-26 16:06 syzop Note Added: 0019537
2016-11-26 16:06 syzop Product Version 4.0.3.1 => 4.0.9
2016-11-26 16:07 syzop Product Version 4.0.9 => 4.0.3.1
2016-11-26 16:07 syzop Target Version => 4.0.9
2016-12-04 16:26 syzop Target Version 4.0.9 => 4.0.10
2016-12-24 13:55 syzop Note Added: 0019563
2016-12-24 13:55 syzop Note Edited: 0019563
2016-12-24 13:56 syzop Note Edited: 0019563
2016-12-24 14:00 syzop Note Added: 0019564
2016-12-24 14:01 syzop Note Edited: 0019564
2016-12-24 14:02 syzop Note Edited: 0019564
2016-12-24 14:02 syzop Note Edited: 0019564
2016-12-29 11:48 syzop Note Added: 0019580
2016-12-30 16:08 syzop Status assigned => resolved
2016-12-30 16:08 syzop Resolution open => fixed
2016-12-30 16:08 syzop Fixed in Version => 4.0.10
2016-12-30 16:08 syzop Note Added: 0019583
2017-01-06 15:48 syzop Category module => module api