Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUSHclient
➜ Lua
➜ Problem with chat system
It is now over 60 days since the last post. This thread is closed.
Refresh page
| Posted by
| Metho
(8 posts) Bio
|
| Date
| Tue 25 May 2010 02:44 AM (UTC) |
| Message
| Me and some fellow players were recently trying to set something up via the chat system. The host system has his port forwarded, and we can connect to him, however, we can only see the hosts name when we do #chats and also can't hear one another. We can hear the host, but that's it.
It's like a and b can talk to one another, and a and c can to one another, but b can't talk to c. I tried searching around but didn't really see anything like this. Any clues as to what might be happening?
Thanks! | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #1 on Tue 25 May 2010 03:45 AM (UTC) |
| Message
| Right. Some quick testing shows it should be working OK, but perhaps not exactly how you expect.
Let's say A hosts the chat session, and B and C connect to A.
Both B and C will show (assuming you have the chat plugin loaded and they type "#chats") that they have a single connection to A. That is, it knows about the *direct* connection to A.
But if B types "#peek A" then it shows that C is connected to A. That is, it shows the other connections A has. Similarly if C types "#peek A" then it shows that B is connected to A.
Having got this far, you should be able to type "#chatall <some message>" and have everyone connected to A see that message. That is, the #chatall sends the message to the chat server, which then echoes it back to all other connected people.
Effectively, #peek gives you the list of connected players, however excepting:
- Yourself (well, you know you are there); and
- The chat server player (which you can find with #chats)
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Metho
(8 posts) Bio
|
| Date
| Reply #2 on Tue 25 May 2010 03:56 AM (UTC) |
| Message
| Ok, so check this out. IamHost is the host - which is not me. Lets say I'm person B. I do #chats and see this:
---- Chats ----
3: IamHost (xx.xxx.xxx.xxx, 4050)
Looks normal. Then I do this (Just pasting it here in case you see something incorrect in it:
#chatdetails 3
----------------------------------------
Server : xx.xxx.xxx.xx
User : IamHost
Group :
Version : MUSHclient v4.43
Call IP : xx.xxx.xxx.xxx
Address : xx.xxx.xxx.xxx
Port : 4050
Call port : 4050
Status : 4
Type : MudMaster
ID : 3
Incoming : No
Can snoop : No
Snooping : No
They snoop : No
Send commands : No
Private : No
Can send files : No
Ignore them : No
Recent ping : 0
Started at : 5/24/2010 6:55:31 PM
Last in : 5/24/2010 7:04:26 PM
Last out : 5/24/2010 8:46:57 PM
Started file :
Xfer file : No
Xfer is send : No
File name :
Full file path :
File size bytes: 0
File blocks : 0
Blocks xferred : 0
Block size : 500
Count of incoming: Personal : 0, All : 4, Group : 0, Messages : 1
Count of outgoing: Personal : 0, All : 7, Group : 0
Now when I do #peek 3 or #peek IamHost I get nothing returned. No error message, no output, not even a hard carriage return (Which would cause my prompt to redisplay), so I'm thinking that's pointing to a problem in the configuration perhaps?
Also, person C lists this when he does #chats:
---- Chats ----
1: IamHost (xx.xxx.xxx.xxx, 4050)
So for him IamHost is listed as 1 and not 3 like on mine - not sure if this is significant. Also, when he does #peek 1 or #peek IamHost, he also gets nothing returned. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #3 on Tue 25 May 2010 05:34 AM (UTC) |
| Message
| Now I'm confused. It's been a while since I worked on this. :)
First, #chatall <some message> should work.
Second, #peek <host> may not return anything if there is only you and the host, as I said both are excluded from the list.
However I actually get:
Peek found 0 connections to John
I am using the Lua version of the chat plugin, you may want to try that if you are using the VBscript one.
I don't think the chat protocol (which I didn't devise personally) allows relaying. That is, you need to directly add your friends, I think, rather than using the central server. Unless, #chatall works for you, then a central server would be OK.
So A can talk to B if B is one of his direct connections, but not if B is a connection to C.
You conceivably could use the chat API as documented to make a plugin that does the relaying. For example, using a custom message number, you could make a chat that goes to the host session, and then has a prefix which is who the host should sent it to. eg.
Custom message number 200.
Send (to host): Dorothy=<some message>
Now when the host gets a message 200, it breaks it into the name followed by the message, looks up the name, and then sends a message to that user.
As far as I recall, this isn't built in, but if someone else remembers better, well and good. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Metho
(8 posts) Bio
|
| Date
| Reply #4 on Tue 25 May 2010 06:14 AM (UTC) |
| Message
| Well, we're confused, too! We're all using the Lua version. The documentation is kind of light, but we assumed that one person allowed connections (becoming the host), and multiple people could connect to the host, and anything sent with #chatall would be seen by the host and all other users connected to that host on the same port.
This isn't the case. I can connect to the host. If I do #chatall test, I see the message sent (e.g. You chat to everybody, 'Test'), and the HOST also sees the message, but any other party who is also connected to the host does not see the message.
The same applies for the other members. If they chatall, the host will see their message, but no one else will. Also, when the HOST does #peek <host>, he'll see EVERYONE else connected (Besides himself, of course.) So he #peeks and sees person B and C, but if B #peeks he gets nothing, and if C #peeks he gets nothing.
Obviously others have gotten it to work, but I guess the system isn't used much, so gathering a good list of documented issues with configuration and such is pretty hard, I'd imagine. I guess we'll keep playing around with it, but we might have to just give up if you or another user who has experience with it can't think of anything else. Thanks for the replies, though. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #5 on Tue 25 May 2010 09:57 PM (UTC) |
| Message
| Well that's strange. My testing shows that the chatall works, although I can't totally explain why.
As I recall, the whole idea of chat was it was peer-to-peer, and therefore the chat sessions survive any individual player leaving. But when I think about it, it seems strange for every player to have to connect to every other one.
One idea that springs to mind is to set up a small MUD server (instead of chat) at the host end, and effectively use that as a channel for chatting which doesn't rely on the main MUD (indeed you could be connected to different MUDs).
In fact my "tiny MUD server" (source code somewhere on this forum) could do the trick, if you added a couple of extra commands (basically for chatting). You basically want some sort of server that doesn't clutter up the screen with messages about "you are getting hungry" etc. all the time. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #6 on Tue 25 May 2010 10:00 PM (UTC) |
| Message
| |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
24,150 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top