Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

websocket rebuild 1m #1195

Closed
wants to merge 32 commits into from
Closed

websocket rebuild 1m #1195

wants to merge 32 commits into from

Conversation

jjhesk
Copy link

@jjhesk jjhesk commented Feb 17, 2019

we will open a new repo and branch to support these dirty works. The previous work are still defective and we need to rework it.
#1178, #1173

jjhesk and others added 24 commits September 27, 2018 12:26
update now with alot of options
u
u
…s and .Register dependencies after .Handle

a developer sent a direct question message from our facebook page: https://www.facebook.com/iris.framework/
…ranslate template function example. Fix ctx.HandlerName() does not return the end-dev-defined current route's name, this will give better warnings when using MVC in a wrong way
…nections interfaces, the 'Connection' interface could be changed to 'ServerConn' but this would produce breaking naming change to the iris users, so keep it as it's.
…rror type as a second output value as requested at: kataras#1187
…xt.CookieOption on Start and Update/ShiftExpiration as requested at: kataras#1186, add a StartWithPath helper as well
…. It implements the gobwas/ws library (it works but need fixes on determinate closing connections) as suggested at: kataras#1178
@jjhesk jjhesk requested a review from kataras as a code owner February 17, 2019 03:41
@CLAassistant
Copy link

CLAassistant commented Feb 17, 2019

CLA assistant check
Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ kataras
❌ jjhesk
You have signed the CLA already but the status is still pending? Let us recheck it.

@jjhesk jjhesk changed the base branch from v11.2.0 to master February 17, 2019 03:44
@jjhesk
Copy link
Author

jjhesk commented Feb 17, 2019

changed base

@kataras kataras mentioned this pull request Feb 17, 2019
@kataras
Copy link
Owner

kataras commented Feb 17, 2019

I don't see any new code/changes here. The new changes I coded yesterday for the "websocket rebuild 1m" is on the #1175 PR on the v11.2.0 branch, you can fetch from there, the package is kataras/iris/websocket2 and the example which is using this temp new package is on the _examples/websocket/go-client-stress-test. Push to the v11.2.0 instead, which is the work-in-progress branch for the next upcoming version (you can do a fork and push there, open a PR which targets the v11.2.0 branch and it will be fine)

@jjhesk
Copy link
Author

jjhesk commented Feb 17, 2019

yes. do you see ws1m?

@jjhesk
Copy link
Author

jjhesk commented Feb 17, 2019

its the complete same code and additional some wip.. im on the phone now..

@kataras
Copy link
Owner

kataras commented Feb 23, 2019

Hello @jjhesk,

Nice job and really thank you for your bug reports but I am working on the #1175 for the next v11.2 as I already told you... I did some work for the past weeks on the websockets to solve the C10M Problem, not just handle 1million, we can already handle 1million if the operating system and host's resources are allowing it.

I know that this is a WIP but I want to mention some things to help you proceed.

I see here two new packages, one is a copy from other repository(?) and other is using a package that it is only compatible with linux(!) and this will break our ecosystem.

I will give you some more days to work on this but we are almost ready for the release, I posponded it two times already. Keep note that I am also working on an external websocket low-level package that it is based on gobwas/ws, as you suggested on your issues, which end-user could be able to manage concurrency by himself, there is no need to be inside Iris itself. Therefore scheduling and synchronization can be adapted manually and optionally by the end-developer as it should.
Iris must run everywhere without limitation, I hope you understand.

However, If you still want to do something about your traffic issue and you can trust yourself on this, just create a new repository with a LINUX-only note - that will wrap iris' websocket (or make your own implementation, you know better) so Iris users can use it with the same API they used and loved to.

Thanks,
Gerasimos Maropoulos

@kataras can you help to clean up the some mess from the comments that I made from the line battles?
@jjhesk jjhesk mentioned this pull request Feb 25, 2019
@jjhesk
Copy link
Author

jjhesk commented Feb 25, 2019

@kataras your idea is clear and helpful. I total agree with you. You are the best =)

that package socketio is based off another idea. I was trying to integrate with the iris.Context and have some that basic header or request info that can be integrated. Also I want to unify Connection struct from socketio into iris.websocket2 oe iris.websocket as the standard compatible part. This is still early time and I have no time for that. You can omit that part for now until I got some idea how to do it..

@kataras would you help to issue an compatible notice or a line of code to check it that package can be run or even be compiled for non-linux base architecture? I have no concept about this.. please help.

For that gobwas/ws concept implementation in iris, I still dont have much knowledge to make it compatible to the existing framework. I think that would be the best to provide some samples to work with channels based on developer need. They like to see where to put they heavy time consuming parts into the block or call as the non-blocking concept yet can manage the stable pprof outcomes.

@jjhesk
Copy link
Author

jjhesk commented Feb 25, 2019

ws1m WIP and updates

@jjhesk
Copy link
Author

jjhesk commented Jun 30, 2019

confirmed

@kataras
Copy link
Owner

kataras commented Jun 30, 2019

Because I already push a new websocket module on the 11.2 PR and I don't see any changes here, is this a branch only to sync with the master? can you please point me what fixes/changes/new features you pushed and what is confirmed? Thanks @jjhesk

@jjhesk
Copy link
Author

jjhesk commented Jul 11, 2019

hi. @kataras there is nothing new in changes. the current socket is working fine. i am using it and tested on few projects. now we need to also make some example for protopuf testings on its versions

@kataras
Copy link
Owner

kataras commented Jul 23, 2019

@kataras kataras closed this Jul 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants